Python 元组字典集合操作总结
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python 元组字典集合操作总结相关的知识,希望对你有一定的参考价值。
元组 | a=(‘a‘,) | a=(‘a‘,‘b‘) |
特点 | 有序 | 不可变,不可以修改元组的值,无法为元组增加或者删除元素 |
元组的创建 | a=(‘a‘,) | a=(‘a‘,‘b‘) |
tuple(‘abcd‘) | 转化为元组 | |
tuple(i for i in range(10)) | 生成器推导式转化为元组,生成器推导式产生的生成器对象只能遍历一次 | |
g=( i for i in range(10)) next(g) | 单步迭代生成器对象 | |
for i in g: print(i,end=‘‘) | 直接迭代生成器对象 | |
a=[1,2,3,4] b=[‘a‘,‘b‘,‘c‘,‘d‘] for I in zip(a,b): print(i) (1,‘a‘) (2,‘b‘) (3,‘c‘) (4,‘d‘) | Zip接受a和b 作为参数,把对应位置的元素打包成一个个元组,返回zip对象 | |
元组的遍历 | for I in a: print(i) for I in range(len(a)): print(a[i]) | |
元组的删除 | del a | 删掉整个元组 |
字典 | {‘a‘:1,‘b‘:2,‘c‘:3} | |
特点 | 键是任意不可变的数据,键不允许重复 | 值可以重复,可以修改的 |
无序可变 | 不可以使用 for i in range(len(a)): a[i] 这种方式来遍历 在字典中[]操作符表示读取某键对应的值 | |
字典的创建 | a={‘a‘:1,‘b‘:2,‘c‘:3} | |
Keys=[‘a‘,‘b‘,‘c‘,‘d‘] Values=[1,2,3,4] dict(zip(keys,values)) | 通过已有的键值对快速创建字典 | |
D=dict(name=‘Dong‘,age=37) {‘name‘:‘Dong‘,‘age‘=37} 但是不能写成 Dict(1=2) Dict(‘name‘=‘Dong‘) 这样会抛keyword cannot be an experssion的异常 | ||
a=dict.fromkeys([‘name‘,‘age‘,‘sex‘]) | 给定键值,值为空 | |
mca={"a":1, "b":2, "c":3, "d":4} dicts={v:k for k,v in mca.items()} 结果为 {1: ‘a‘, 2: ‘b‘, 3: ‘c‘, 4: ‘d‘} | 字典推导式 | |
字典元素的读取 | a[‘name‘] | 若name存在,则返回值,若name不存在,则keyError |
a.get(‘name‘,‘Amy‘) | 获得指定的键对应的值,如果键不存在,则返回指定的值 | |
字典元素的添加与修改 | a[‘age‘]=38 | 若键存在,表示修改键的值,若不存在,表示添加一个新的键值对 |
a.update({‘a‘:a,‘b‘:b}) | 将另一个字典中的键值对添加到a中,如果键值有相同的,则以另一个字典中的值为准 | |
字典元素的删除 | del(a[‘age‘]) | |
a.pop(‘age‘) | 删除指定键的元素并返回指定键的值 | |
a.popitem() | 随机删除并返回键值对 | |
a.clear() | 删除字典中所有元素 | |
字典的遍历 | a={‘name‘:‘Dong‘,‘age‘=37} for item in a.items(): print(a) (‘age‘,37) (‘name‘,Dong) | items() 方法返回键值对 是dict_items类型的 |
for I in a: print(i) ‘name‘ ‘age‘ | 啥也不写,就是遍历键 | |
for i in a.keys(): print(i) ‘name‘ ‘age‘ | keys()方法返回键 是dict_keys类型的 | |
for i in a.values(): print(i) ‘Dong‘ ‘37‘ | values()方法返回值,是dict_values类型的 | |
字典的应用 | ||
统计频率 | d=dict() for ch in z: d[ch]=d.get(ch,0)+1 | 如果ch在字典中已经存在,那么get就会返回频率 ,频率+1,如果不存在,那么get返回0,+1,频率就是1 |
集合 | a={3,5} | |
特点 | 无序可变 | 集合中元素不许重复 |
集合的创建 | X={random.randint(1,500) for i in range(100)} | 集合推导式 |
set([1,1]) {1} | 转化为集合,如果原来的数据中存在重复元素,在转换位集合时只保留一个 | |
set() 不是{} 这个是空字典 | 创建一个空集合 | |
集合元素的添加 | a.add(7) | 往集合中加入重复的元素,是加不进去的,也不会有任何异常 |
集合元素的删除 | a.pop() | 删除任意一个集合中的元素 |
a.remove(3) | 从集合中删除3 | |
a.clear() | 从集合中删除所有元素 | |
集合的操作 | ||
并集 | a|b | a.union(b) |
交集 | a&b | a.intersection(b) |
差集 | a-b | a.difference(b) |
对称差 | a^b | a.symmetric_difference(b) |
集合大小(一个 set 比另一个 set 小,只有在第一个 set 是第二个 set 的 subset 时) | a<b | |
判断是否是子集 | a.issubset(b) | |
集合的应用 | ||
提取序列中所有不重复的元素 | a=set(list_b) | |
生成不重复的随机数 | data=set() while True: data.add(random.randint(0,100)) if len(data)==20 break |
以上是关于Python 元组字典集合操作总结的主要内容,如果未能解决你的问题,请参考以下文章