python字典、集合总结
2018-11-14 本文已影响0人
发家致富靠养猪
一、字典相关运算方法
1.clear
- 字典.clear() - 清空字典(删除字典中所有的键值对)
dict1 = {'a':1,'b':2}
dict1.clear()
2.copy
- 字典.copy()- 复制字典中的所有的键值对 产生一个新的字典
dict1 = {'a':1,'b':2}
dict2 = dict1.copy()
3.fromkeys
- dict.fromkeys(序列,值)- 把序列中的元素作为key,值作为所有key对应的默认值,创建一个新的字典
dict3= dict.fromkeys('abc',100)
print(dict3) # {'a': 100, 'b': 100, 'c': 100}
dict3= dict.fromkeys(['name','age','hah'],100)
print(dict3) # {'name': 100, 'age': 100, 'hah': 100}
4.get
- 字典.get(key)- 获取key对应的值,不存在返回None
- 字典.get(key,值)- 获取key对应的值,如果key不存在 返回指定的值
dict3 = {'name': 100, 'age': 100, 'hah': 100}
print(dict3.get('name1')) #None
print(dict3.get('name1','不存在'))# 不存在
5.keys,value,items
- 字典.keys()- 获取字典所有的key(返回序列,序列中的元素就是字典的key)
- 字典.values()- 获取字典所有的值(返回序列,序列中的元素就是字典的值)
- 字典.items()- 获取字典多有的键值对(返回序列,序列中的元素是元祖,元祖中元素有两个,分别是key和value。)
dict3 = {'name': 100, 'age': 100, 'hah': 100}
dict4 = dict3.keys() #返回的是序列 不是列表
print(dict4)
print(dict3.values())
print(dict3.items())
for item in dict4:
print(item)
6.setdefault(key,value)
- 字典.setdefault(key,value) - 给字典添加键值对,如果key本来存在,不会修改这个key的值,对原字典无影响
dict3 = {'name': 100, 'age': 100, 'hah': 100}
dict3.setdefault('aq','200')
print(dict3) #{'name': 100, 'age': 100, 'hah': 100, 'aq': '200'}
dict3.setdefault('age','200')
print(dict3) #{'name': 100, 'age': 100, 'hah': 100, 'aq': '200'}
二、集合
1.什么是集合(set)
- 集合是python内置的一个容器类的数据类型,是可变,无序的
- 字面量 - {} 使用大括号括起来 里面有多个元素,多个元素之间使用逗号隔开
- **元素 **- 不是键值对,必须是不可变的,而且是唯一的
set1 = {1,2,3,'s',True}
set3 = set() #创建空集
print(type(set3),set3)
2.集合的增删改查
a.查(获取集合元素)
- 不能直接获取集合中单独的某个元素,只能遍历
set1 = {1,2,3,'s',True}
for item in set1:
print(item)
b.增(添加元素)
- 集合.add(元素)- 将指定元素添加到集合中
- 集合.update(序列)- 将序列中的元素添加到集合
set1.add(50)
print(set1)#{1, 2, 3, 50, 's'}
set1.update([22,55])
print(set1)#{1, 2, 3, 50, 22, 55, 's'}
c.删(删除元素)
- 集合.remove(元素)- 删除集合中指定的元素
set1.remove(55)
print(set1)#{1, 2, 3, 's', 50, 22}
d.改 - 集合不能修改元素的值
3.集合的运算方法 + * in not in len() set() max() min()
4.数学集合运算
- python中的集合支持数学相关的集合运算
1.包含
集合1 >= 集合2 判断集合1是否包含集合2 (集合2是否是集合1的子集)
**集合1 <= 集合2 ** 判断集合2是否包含集合1 (集合1是否是集合2的子集)
print({1,2,3} >= {1,2}) #True
print({1,2,3} >= {1,2,4})#False
print({1,2,3} <= {1,2})#False
print({1,2,3} <= {1,2,3,4})#True
2.并集
集合1 | 集合2 - 将两个集合中的元素合并在一起产生一个新的集合
3.交集
**集合1 & 集合2 **- 使用两个集合中公共的元素,创建一个新的集合
4.差集
集合1 - 集合2 - 将集合1除了集合2的部分外 创建一个新的集合
5.补集
集合1 ^ 集合2 - 将两个集合中除了公共部分以外的元素创建一个新的集合
set1 = {1,2,3,4,5}
set2 = {4,5,6,7}
print(set1 | set2) #{1, 2, 3, 4, 5, 6, 7}
print(set1 & set2) #{4, 5}
print(set1 - set2) #{1, 2, 3}
print(set1 ^ set2) #{1, 2, 3, 6, 7}