集合
定义
- 集合本身是一个可变类型
- 无序无重复。
- 集合的元素必须是不可变类型。
- 空集合变量只能通过构造函数来创建。
- 集合中元素是无序的,所以不能通过索引访问。
常规操作
集合增删,add,remove。
集合运算:并集union()或者‘|’;交集intersection()或者‘&’;差集difference或则‘-’;
其他集合操作:
还有一种集合:frozenset,除了不能增加和删除元素外,其他功能和set类似。
代码示例
集合创建
set1 = set((6,7,8))
set2 = {(4,5),"hello", 5}
print(set1)
print(set2)
结果:
{8, 6, 7}
{(4, 5), 5, 'hello'}
添加删除元素
set1 = set((6,7,8,9))
set2 = {(4,5),"hello", 5}
set2.add('world')
set1.remove(7)
print(set1)
print(set1.pop())
print(set1)
print(set2.discard(12))
print(set2)
结果:
{8, 9, 6}
8
{9, 6}
None
{(4, 5), 'world', 'hello', 5}
集合运算
set1 = set((5,6,7,8,9))
set2 = {(4,5),"hello", 5}
print(set1 | set2)
print(set1 & set2)
print(set1 - set2)
结果:
{(4, 5), 5, 6, 7, 8, 9, 'hello'}
{5}
{8, 9, 6, 7}
set1 = set((5,6,7,8,9))
set2 = {(4,5),"hello", 5}
print(set1.difference(set2))
print(set1.difference_update(set2))
print(set1)
结果:
{8, 9, 6, 7}
None
{6, 7, 8, 9}
set1 = set((5,6,7,8,9))
set2 = {(4,5),"hello", 5}
set3 = {(4,5),10,12}
print(set1.intersection_update(set2,set3))
print(set1)
结果:
None
set()
set1 = set((5,6,7,8,9))
set2 = {(4,5),"hello", 5}
print(set1.union(set2))
print(set1)
结果:
{(4, 5), 5, 6, 7, 8, 9, 'hello'}
{5, 6, 7, 8, 9}
更新集合
set1 = set((5,6,7,8,9))
set2 = {(4,5),"hello", 5}
print(set1.update(set2))
print(set1)
print(set1.update("world"))
print(set1)
print(set1.update([12,12,35]))
print(set1)
结果:
None
{5, 6, 7, 8, 9, (4, 5), 'hello'}
None
{'w', 5, 6, 7, 8, 9, 'o', 'd', 'r', (4, 5), 'l', 'hello'}
None
{'w', 35, 5, 6, 7, 8, 9, 'o', 'd', 12, 'r', (4, 5), 'l', 'hello'}
对称差集
和交集刚好相反
set1 = set((5,6,7,8,9))
set2 = {(4,5),"hello", 5}
print(set1.symmetric_difference(set2))
print(set1)
结果:
{'hello', 6, 7, 8, 9, (4, 5)}
{5, 6, 7, 8, 9}
字典
定义
可变容器类型,可以存储任意类型的对象,无序容器。
常用字典操作:
代码示例
字典创建
dict1 = dict({'name':'bruce'})
dict2 = {'name':'bruce','age':23}
dict3 = dict1.fromkeys(["age","salary"],25)
print(dict1)
print(dict2)
print(dict3)
结果:
{'name': 'bruce'}
{'name': 'bruce', 'age': 23}
{'age': 25, 'salary': 25}
添加
添加
dict1 = dict({'name':'bruce'})
dict1["age"] = 35
dict1['salary'] = 1000
print(dict1)
读取
dict1 = dict({'name':'bruce'})
dict1["age"] = 35
dict1['salary'] = 1000
print(dict1)
print(dict1['name'])
print(dict1.get('name'))
结果:
{'name': 'bruce', 'age': 35, 'salary': 1000}
bruce
bruce
更新
dict1 = dict({'name':'bruce'})
dict1.update({'age':25,"salary":1000})
print(dict1)
结果:
{'name': 'bruce', 'age': 25, 'salary': 1000}
遍历
dict1 = dict({'name':'bruce'})
dict1.update({'age':25,"salary":1000})
for key in dict1.keys():
print("{}:{}".format(key,dict1[key]))
结果:
name:bruce
age:25
salary:1000
dict1.update({'age':25,"salary":1000})
for d in dict1.items():
print("{}".format(d))
结果: #d是元组类型
('name', 'bruce')
('age', 25)
('salary', 1000)
删除
dict1 = dict({'name':'bruce'})
dict1.update({'age':25,"salary":1000})
print(dict1.popitem())
print(dict1.pop('name'))
结果 :
('salary', 1000)
bruce