组合数据类型

  • 一、集合类型(Set)
  • 1.去重功能
  • 2.集合运算
  • 3.集合内置方法
  • 二、序列类型
  • 1.列表类型(List)
  • 1.1 访问列表
  • 1.2 列表内置方法
  • 2.元组类型(Tuple)
  • 2.1 创建元组
  • 2.2 访问元组
  • 2.3 元组不可变
  • 三、字典类型(Dictionary)
  • 1. 创建字典
  • 2.访问字典
  • 3.修改字典
  • 4.字典内置方法


本文主要想整理一些python常用的组合数据类型的方法。资料主要来源于菜鸟教程

一、集合类型(Set)

  • 集合(set)是由一个或数个形态各异的大小整体组成的,构成集合的事物或对象称作元素或是成员。基本功能是进行成员关系测试和删除重复元素。
  • 创建方法:可以使用大括号 { } 或者 set() 函数创建集合,如创建的是空集合不能用 { }

1.去重功能

s1 = 'ppppython18'
print(set(s1))

输出如下

{'n', '8', 'p', '1', 't', 'y', 'o', 'h'}

2.集合运算

s1 = 'ppppython18'
s2 = '180'
# 差集
print(set(s1) - set(s2))
# 并集
print(set(s1 ) | set(s2 ))
# 交集
print(set(s1) & set(s2))
# 异或集,不同时包含于sample1和sample2的元素
print(set(s1) ^ set(s2))
{'t', 'o', 'n', 'p', 'y', 'h'}
{'0', 'o', 't', 'n', 'p', 'y', '8', '1', 'h'}
{'1', '8'}
{'0', 't', 'o', 'n', 'p', 'y', 'h'}

3.集合内置方法

方法/语法

描述

set.add(new_elmnt)

为集合添加元素

set.clear()

移除集合中的所有元素

set.copy()

拷贝一个集合

set.difference(set)

返回多个集合的差集

set.difference_update(set)

移除集合中的元素,该元素在指定的集合也存在。

set.discard(value)

删除集合中指定的元素

set.intersection(set1, set2 ... etc)

返回集合的交集,是返回一个新的集合

set.intersection_update(set1, set2 ... etc)

返回集合的交集,是在原始的集合上移除不重叠的元素。

set.isdisjoint(set)

判断两个集合是否包含相同的元素,如果没有返回 True,否则返回 False。

set.issubset(set)

判断指定集合是否为该方法参数集合的子集。

set.issuperset(set)

判断该方法的参数集合是否为指定集合的子集

set.pop()

随机移除元素

set.remove(item)

移除指定元素

set.symmetric_difference(set)

返回两个集合中不重复的元素集合。

set.symmetric_difference_update(set)

移除当前集合中在另外一个指定集合相同的元素,并将另外一个指定集合中不同的元素插入到当前集合中。

set.union(set1, set2...)

返回两个集合的并集

set.update(set)

给集合添加元素

二、序列类型

1.列表类型(List)

  • 列表(List)是 Python 中使用最频繁的数据类型。列表可以完成大多数集合类的数据结构实现。列表中元素的类型可以不相同,它支持数字,字符串甚至可以包含列表(所谓嵌套)。
  • 列表是写在方括号 [] 之间、用逗号,分隔开的元素列表。

1.1 访问列表

使用下标索引来访问列表中的值,同样也可以使用方括号的形式截取字符。其中,索引值以 0 为开始值,-1 为从末尾的开始位置。

l1 = ['python', 12, 0]
print(l1[0])
print(l1[1:])
python
[12, 0]

1.2 列表内置方法

方法/语法

描述

list.append(obj)

在列表末尾添加新的对象

list.count(obj)

统计某个元素在列表中出现的次数

list.extend(seq)

在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)

list.index(obj)

从列表中找出某个值第一个匹配项的索引位置

list.insert(index, obj)

将对象插入列表

list.pop([index=-1])

移除列表中的一个元素(默认最后一个元素),并且返回该元素的值

list.remove(obj)

移除列表中某个值的第一个匹配项

list.reverse()

反向列表中元素

list.sort( key=None, reverse=False)

对原列表进行排序

list.clear()

清空列表

list.copy()

复制列表

2.元组类型(Tuple)

  • 元组(tuple)与列表类似,但是元组的元素不允许修改。
  • 元组写在小括号 () 里,元素之间用逗号,隔开。
  • 元组中的元素类型也可以不相同。

2.1 创建元组

tup1 = ('python', 12, 0)
tup2 = "p", "y", "t", "h", "o", "n"    # 可以不需要括号
tup3 = (180,)  # 元组中只包含一个元素时,需要在元素后面添加逗号
print(tup1, type(tup1))
print(tup2, type(tup2))
print(tup3, type(tup3))
('python', 12, 0) <class 'tuple'>
('p', 'y', 't', 'h', 'o', 'n') <class 'tuple'>
(180,) <class 'tuple'>

2.2 访问元组

tup1 = ('python', 12, 0)
print(tup1[0])
print(tup1[1:])
python
(12, 0)

2.3 元组不可变

所谓元组的不可变指的是元组所指向的内存中的内容不可变。

tup1 = ('python', 12, 0)
tup1[0] = 'asd'
Traceback (most recent call last):
  File "D:/...", line 27, in <module>
    tup1[0] = 'asd'
TypeError: 'tuple' object does not support item assignment

三、字典类型(Dictionary)

  • 字典(Dictionary)是一种映射类型,字典用 { } 标识,它是一个无序的key : value 的集合。
  • 列表是有序的对象集合,而字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。
  • 值可以取任何数据类型;但键必须是不可变的,可以用数字,字符串或元组充当。
  • 在同一个字典中,键(key)必须是唯一的。

1. 创建字典

dict1 = {'Id': 1, 'Name': 'Tom', 'Age': 18}
dict2 = dict(Id=2, Name='Amy', Age=21)
print(dict1, type(dict1))
print(dict2, type(dict2))
{'Id': 1, 'Name': 'Tom', 'Age': 18} <class 'dict'>
{'Id': 2, 'Name': 'Amy', 'Age': 21} <class 'dict'>

2.访问字典

  1. 一键一值的情况
dict1 = {'Id': 1, 'Name': 'Tom', 'Age': 18}
print(dict1['Id'])
print(dict1.keys())     # 输出所有键
print(dict1.values())   # 输出所有值
1
dict_keys(['Id', 'Name', 'Age'])
dict_values([1, 'Tom', 18])
  1. 一键多值的情况
dict3 = {'Id': [1, 2], 'Name': ['Tom', 'Tony'], 'Age': [18, 30]}
print(dict3['Name'][0])
Tom

3.修改字典

dict1 = {'Id': 1, 'Name': 'Tom', 'Age': 18}
dict1['Id'] = 10
print(dict1, type(dict1))
{'Id': 10, 'Name': 'Tom', 'Age': 18} <class 'dict'>

4.字典内置方法

方法/语法

描述

dict.clear())

删除字典内所有元素

dict.copy()

返回一个字典的浅复制

dict.fromkeys()

创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值

dict.get(key, default=None)

返回指定键的值,如果键不在字典中返回 default 设置的默认值

key in dict

如果键在字典dict里返回true,否则返回false

dict.items()

以列表返回可遍历的(键, 值) 元组数组

dict.keys()

返回一个迭代器,可以使用 list() 来转换为列表

dict.setdefault(key, default=None)

和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default

dict.update(dict2)

把字典dict2的键/值对更新到dict里

dict.values()

返回一个迭代器,可以使用 list() 来转换为列表

pop(key[,default])

删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。

popitem()

随机返回并删除字典中的最后一对键和值。