元组(tuple)元组与列表类似,不同之处在于元组的元素不能修改元组使用小括号,列表使用方括号元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可没有 append(),insert() 这样进行修改的方法,其他方法都与列表一样字典中的键必须是唯一的同时不可变的,值则没有限制元组中只包含一个元素时,需要在元素后面添加逗号,否则括号会被当作运算符使用访问元组访问元组的方式与列表是一致的。 元组的元素可以直接赋值给多个变量,但变量数必须与元素数量一致。>>> a, b, c = (1, 2, 3)>>> print(a,b,c)1 2 3组合元组元组中的元素值是不允许修改的,但我们可以对元组进行连接组合>>> tup1 = (12, 34.56);>>> tup2 = ('abc', 'xyz')>>> tup3 = tup1 + tup2;>>> tup3(12, 34.56, 'abc', 'xyz')删除元组元组中的元素值是不允许删除的,但我们可以使用 del 语句来删除整个元组元组函数len(tuple) 元组元素个数max(tuple) 元组元素中的最大值min(tuple) 元组元素中的最小值tuple(tuple) 将列表转换为元组元组推导式>>> t = 1, 2, 3>>> print(t)(1, 2, 3)>>> u = t, (3, 4, 5)>>> print(u)((1, 2, 3), (3, 4, 5))字典(dict)字典是另一种可变容器模型,可存储任意类型对象字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中键必须是唯一的,但值则不必值可以是任意数据类型键必须是不可变的,例如:数字、字符串、元组可以,但列表就不行如果用字典里没有的键访问数据,会报错字典的元素没有顺序,不能通过下标引用元素,通过键来引用字典内部存放的顺序和 key 放入的顺序是没有关系的格式如下:d = {key1 : value1, key2 : value2 }访问字典>>> dis = { 'a': 1, 'b': [1, 2, 3]}>>> print(dis['b'][2])3修改字典>>> dis = { 'a': 1, 'b': [1, 2, 3], 9: { 'name': 'hello'}}>>> dis[9]['name'] = 999>>> print(dis){ 'a': 1, 'b': [1, 2, 3], 9: { 'name': 999}}删除字典用 del 语句删除字典或字典的元素。>>> dis = { 'a': 1, 'b': [1, 2, 3], 9: { 'name': 'hello'}}>>> del dis[9]['name']>>> print(dis){ 'a': 1, 'b': [1, 2, 3], 9: {}}>>> del dis >>> disTraceback (most recent call last): File "", line 1, in NameError: name 'dis' is not defined字典函数len(dict) 计算字典元素个数,即键的总数str(dict) 输出字典,以可打印的字符串表示type(variable) 返回输入的变量类型,如果变量是字典就返回字典类型key in dict 判断键是否存在于字典中字典方法dict.clear()删除字典内所有元素dict.copy()返回一个字典的浅复制dict.fromkeys(seq[, value])创建一个新字典,以序列 seq 中元素做字典的键,value 为字典所有键对应的初始值dict.get(key, default=None)返回指定键的值,如果值不在字典中返回默认值dict.items()以列表形式返回可遍历的(键, 值)元组数组dict.keys()以列表返回一个字典所有的键dict.values()以列表返回字典中的所有值dict.setdefault(key, default=None)如果 key 在字典中,返回对应的值。如果不在字典中,则插入 key 及设置的默认值 default,并返回 default ,default 默认值为 None。dict.update(dict2)把字典参数 dict2 的键/值对更新到字典 dict 里>>> dic1 = { 'a': 'a'}>>> dic2 = {9: 9, 'a': 'b'}>>> dic1.update(dic2)>>> print(dic1){ 'a': 'b', 9: 9}dict.pop(key[,default])删除字典给定键 key 所对应的值,返回值为被删除的值。key 值必须给出,否则返回 default 值。dict.popitem()随机返回并删除字典中的一对键和值(一般删除末尾对)字典推导式构造函数 dict() 直接从键值对元组列表中构建字典。如果有固定的模式,列表推导式指定特定的键值对:>>> dict([('sape', 4139), ('guido', 4127), ('jack', 4098)]){ 'sape': 4139, 'guido': 4127, 'jack': 4098}字典推导可以用来创建任意键和值的表达式词典:>>> {x: x**2 for x in (2, 4, 6)}{ 2: 4, 4: 16, 6: 36}如果关键字只是简单的字符串,使用关键字参数指定键值对有时候更方便:>>> dict(sape=4139, guido=4127, jack=4098){ 'sape': 4139, 'guido': 4127, 'jack': 4098}集合(set)集合是一个无序不重复元素的序列创建集合可以使用大括号 {} 或者 set() 函数创建集合创建一个空集合必须用 set() 而不是 {},因为 {} 是用来创建一个空字典set(value) 方式创建集合,value 可以是字符串、列表、元组、字典等序列类型创建、添加、修改等操作,集合会自动去重>>> {1, 2, 1, 3}{ 1, 2, 3}>>> set('12345'){ '5', '2', '4', '1', '3'}>>> set([1, 'a', 23.4]){ 'a', 1, 23.4}>>> set((1, 'a', 23.4)){ 'a', 1, 23.4}>>> set({1:1, 'b': 9}){ 1, 'b'}添加元素将元素 val 添加到集合 set 中,如果元素已存在,则不进行任何操作:set.add(val)也可以用 update 方法批量添加元素,参数可以是列表,元组,字典等:set.update(list1, list2,...)移除元素如果存在元素 val 则移除,不存在就报错:set.remove(val)如果存在元素 val 则移除,不存在也不会报错:set.discard(val)随机移除一个元素:set.pop()元素个数与其他序列一样,可以用 len(set) 获取集合的元素个数。清空集合set.clear()set = set()判断元素是否存在val in set其他方法:set.copy() 复制集合set.difference(set2) 求差集,在 set 中却不在 set2 中set.intersection(set2)求交集,同时存在于 set 和 set2 中set.union(set2)求并集,所有 set 和 set2 的元素set.symmetric_difference(set2)求对称差集,不同时出现在两个集合中的元素set.isdisjoint(set2)如果两个集合没有相同的元素,返回 Trueset.issubset(set2)如果 set 是 set2 的一个子集,返回 Trueset.issuperset(set2)如果 set 是 set2 的一个超集,返回 True字典(dict)字典是另一种可变容器模型,可存储任意类型对象字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中键必须是唯一的,但值则不必值可以是任意数据类型键必须是不可变的,例如:数字、字符串、元组可以,但列表就不行如果用字典里没有的键访问数据,会报错字典的元素没有顺序,不能通过下标引用元素,通过键来引用字典内部存放的顺序和 key 放入的顺序是没有关系的格式如下:d = {key1 : value1, key2 : value2 }访问字典>>> dis = { 'a': 1, 'b': [1, 2, 3]}>>> print(dis['b'][2])3修改字典>>> dis = { 'a': 1, 'b': [1, 2, 3], 9: { 'name': 'hello'}}>>> dis[9]['name'] = 999>>> dis{ 'a': 1, 'b': [1, 2, 3], 9: { 'name': 999}}删除字典用 del 语句删除字典或字典的元素。>>> dis = { 'a': 1, 'b': [1, 2, 3], 9: { 'name': 'hello'}}>>> del dis[9]['name']>>> dis{ 'a': 1, 'b': [1, 2, 3], 9: {}}>>> del dis>>> disTraceback (most recent call last): File " ", line 1, in 字典函数len(dict) 计算字典元素个数,即键的总数str(dict) 输出字典,以可打印的字符串表示type(variable) 返回输入的变量类型,如果变量是字典就返回字典类型key in dict 判断键是否存在于字典中字典方法dict.clear()删除字典内所有元素dict.copy()返回一个字典的浅复制dict.fromkeys(seq[, value])创建一个新字典,以序列 seq 中元素做字典的键,value 为字典所有键对应的初始值dict.get(key, default=None)返回指定键的值,如果值不在字典中返回默认值dict.items()以列表形式返回可遍历的(键, 值)元组数组dict.keys()以列表返回一个字典所有的键dict.values()以列表返回字典中的所有值dict.setdefault(key, default=None)如果 key 在字典中,返回对应的值。如果不在字典中,则插入 key 及设置的默认值 default,并返回 default ,default 默认值为 None。dict.update(dict2)把字典参数 dict2 的键/值对更新到字典 dict 里>>> dic1 = { 'a': 'a'}>>> dic2 = {9: 9, 'a': 'b'}>>> dic1.update(dic2)>>> dic1{ 'a': 'b', 9: 9}dict.pop(key[,default])删除字典给定键 key 所对应的值,返回值为被删除的值。key 值必须给出,否则返回 default 值。dict.popitem()随机返回并删除字典中的一对键和值(一般删除末尾对)字典推导式构造函数 dict() 直接从键值对元组列表中构建字典。如果有固定的模式,列表推导式指定特定的键值对:>>> dict([('sape', 4139), ('guido', 4127), ('jack', 4098)]){ 'sape': 4139, 'guido': 4127, 'jack': 4098}此外,字典推导可以用来创建任意键和值的表达式词典:>>> {x: x**2 for x in (2, 4, 6)}{ 2: 4, 4: 16, 6: 36}如果关键字只是简单的字符串,使用关键字参数指定键值对有时候更方便:>>> dict(sape=4139, guido=4127, jack=4098){ 'sape': 4139, 'guido': 4127, 'jack': 4098}集合(set)集合是一个无序不重复元素的序列创建集合可以使用大括号 {} 或者 set() 函数创建集合创建一个空集合必须用 set() 而不是 {},因为 {} 是用来创建一个空字典set(value) 方式创建集合,value 可以是字符串、列表、元组、字典等序列类型创建、添加、修改等操作,集合会自动去重>>> {1, 2, 1, 3}{ 1, 2, 3}>>> set('12345'){ '1', '5', '2', '3', '4'}>>> set([1, 'a', 23.4]){ 1, 23.4, 'a'}>>> set((1, 'a', 23.4)){ 1, 23.4, 'a'}>>> set({1:1, 'b': 9}) { 1, 'b'}添加元素将元素 val 添加到集合 set 中,如果元素已存在,则不进行任何操作:set.add(val)也可以用 update 方法批量添加元素,参数可以是列表,元组,字典等:set.update(list1, list2,...)移除元素如果存在元素 val 则移除,不存在就报错:set.remove(val)如果存在元素 val 则移除,不存在也不会报错:set.discard(val)随机移除一个元素:set.pop()元素个数与其他序列一样,可以用 len(set) 获取集合的元素个数。清空集合set.clear()set = set()判断元素是否存在val in set其他方法set.copy()复制集合set.difference(set2)求差集,在 set 中却不在 set2 中set.intersection(set2)求交集,同时存在于 set 和 set2 中set.union(set2)求并集,所有 set 和 set2 的元素set.symmetric_difference(set2)求对称差集,不同时出现在两个集合中的元素set.isdisjoint(set2)如果两个集合没有相同的元素,返回 Trueset.issubset(set2)如果 set 是 set2 的一个子集,返回 Trueset.issuperset(set2)如果 set 是 set2 的一个超集,返回 True>>> a = set('abracadabra')>>> b = set('alacazam')>>> print(a) { 'b', 'r', 'd', 'c', 'a'}>>> a-b{ 'd', 'b', 'r'}>>> a|b{ 'm', 'b', 'z', 'l', 'r', 'd', 'c', 'a'}>>> a&b{ 'c', 'a'}>>> a^b{ 'm', 'b', 'z', 'r', 'd', 'l'}集合推导式>>> a = {x for x in 'abracadabra' if x not in 'abc'}>>> print(a){ 'd', 'r'}