首页 > 编程语言 > 详细

python3基础知识自学笔记3-集合字典元组

时间:2018-08-10 16:42:49      阅读:165      评论:0      收藏:0      [点我收藏+]
元组(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 
>>> dis
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
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)
如果两个集合没有相同的元素,返回 True
set.issubset(set2)
如果 set 是 set2 的一个子集,返回 True
set.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
>>> dis
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>

字典函数
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)
如果两个集合没有相同的元素,返回 True
set.issubset(set2)
如果 set 是 set2 的一个子集,返回 True
set.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}

 

python3基础知识自学笔记3-集合字典元组

原文:https://www.cnblogs.com/guiguxiaosheng/p/9455802.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!