1.字典
- 字典是无序的可变序列,元素存放无序,通过哈希方式进行数据存取,而不是通过索引
- 字典中保存一个个的键值对:key:value,可以通过key来获取对应的值,很类似我们的汉语字典
- 字典中的键必须是唯一的,且字典中的键必须是不可变
- 字典是可变的,且可以任意嵌套
- 字典是无序的,各项从左到右随机排序,保存在字典中的项没有特定的顺序,查找效率高
2.字典的创建
- 语法:dictionary = {‘key1’:‘value1’,‘key2’:‘value1’,…,‘keyn’:‘valuen’}
- 字典以键值对方式存在,"键"和"值"之间用冒号分隔,连个相邻元素使用逗号分隔,所有的元素放在{}
dict1 = {}
dict2 = {'name':'五竹','age':20,'name':'范闲'}
print(dict2)
dict3 = dict(a=3,b=4)
print(dict3)
key = ['回忆','成长']
value = ['年轮','婴儿哭啼']
dict4 = dict(zip(key,value))
print(dict4)
3.字典操作
3.1 存储多个学生的成绩
dict1 = {'English':79,'Java':100,'Python':200}
print(dict1)
print(dict1)
3.2 元素访问
dict1 = {'English':79,'Java':100,'Python':200}
print(dict1['Java'])
print(dict1['java'])
result = dict1.get('English')
result1 = dict1.get('java','1')
print(result)
print(result1)
3.3 添加
dict1 = {'English':79,'Java':None,'Python':200}
dict1['Java'] = 10
dict1['English'] = 1000
print(dict1)
3.4 删除
dict1 = {'English':79,'Java':None,'Python':200}
dict1.pop('Java')
print(dict1)
dict1 = {'English':79,'Java':None,'Python':200}
del dict1['English']
print(dict1)
del dict1
dict1 = {'English':79,'Java':None,'Python':200}
print(dict1.clear())
3.5 字典合并
dict1 = {1:'hello'}
dict2 = {2:'world'}
dict1.update(dict2)
print(dict1)
3.6 遍历
dict1 = {'English':79,'Java':None,'Python':200}
for key in dict1:
print(key,end=" ")
dict1 = {'English':79,'Java':None,'Python':200}
print(dict1.values())
for values in dict1.values():
print(values,end=" ")
dict1 = {'English':79,'Java':None,'Python':200}
print(dict1.items())
for item,value in dict1.items():
print("Key:%s\tValue:%s"%(item,value))
'''
输出:
Key:English Value:79
Key:Java Value:None
Key:Python Value:200
'''
dict1 = {'English':79,'Java':None,'Python':200}
for index,key in enumerate(dict1):
value = dict1[key]
print(index,key,value)
'''
输出:
0 English 79
1 Java None
2 Python 200
'''
3.7 获取键值对个数
dict1 = {'English':79,'Java':None,'Python':200}
print(len(dict1))
3.8 成员操作
dict1 = {'English':79,'Java':None,'Python':200}
print('English' in dict1)
3.9 字典推导式
- 语法:{key:value for key,value in iteral}
- 使用字典推导式快速生成一个字典,与列表推导式类似
s1 = "2uiirwioeroweorsiotoewtio"
print(set(s1))
result = {ch:s1.count(ch) for ch in set(s1)}
print(result)
d1 = {"a":10,'b':20,"c":30}
dict1 = {value:key for key,value in d1.items()}
print(dict1)
4.集合
- Python中的集合同数学中的集合概念类似,保存不重复的元素。
- 特点:不允许由重复元素,如果添加重复元素,则会自动过滤,可以进行交集,并集和差集等运算
5.集合的创建
- 创建集合,如果输入重复元素,Python会自动只保留一个
set = {1,2,2,3,}
print(set)
set1 = ('时间是最好的庸医')
set1 = set(set1)
print(set1)
6.集合操作
6.1 添加
set1 = {'四月','是','你的'}
set1.add('谎言')
print(set1)
set1.update(['时间','最好的','庸医'])
print(set1)
6.2 删除
- del 方法删除集合;remove()方法删除一个指定元素;clear()方法清空集合;pop()方法随机删除
- 使用remove()方法,如指定内容不存在会抛出异常,删除前一你应该使用关键子’in’判断该元素是否存在
set1 = {'四月','是','你的','谎言'}
set1.clear()
print(set1)
6.3 元素个数
set1 = {'四月','是','你的','谎言'}
print(len(set1))
6.4 成员操作
set1 = {'四月','是','你的','谎言'}
print('四月' in set1)
6.5 集合的交集,并集和差集运算
s1 = {1,2,3,4,5,6}
s2 = {3,4,5,6,7,8}
res1 = s1 | s2
print(res1)
res2 = s1 & s2
print(res2)
res3 = s1 - s2
print(res3)