仅记录个人学习Python所学,学识浅薄,若有错误欢迎指出。文章可能会不太完善,后续可能会继续更新。
一、字典dict
语法: {键1: 值1, 键2: 值2, 键3: 值3, …, 键n: 值n}
说明:键值对: key-value
- 字典和列表类似,都可以用来存储多个数据
- 在列表中查找某个元素时,是根据下标进行的;字典中找某个元素时,是根据’名字’(就是冒号:前面的那个值,例如上面代码中的’name’、‘id’、‘sex’)
- 字典中的每个元素都由2部分组成,键:值。例如 ‘name’:‘班长’ ,'name’为键,'班长’为值
- 键可以使用数字、布尔值、元组,字符串等不可变数据类型,但是一般习惯使用字符串,切记不能使用列表等可变数据类型
- 每个字典里的key都是唯一的,如果出现了多个相同的key,后面的value会覆盖之前的value
# 字典 dictionary dict
# 1.里面的元素是一个键值对 key-value
# 2.key 有3个特点 :
# a. 唯一
# b.不可变类型
# c.无序(没有下标)
# 1. 创建字典
d = {
"name": "zs", "age": 22, "height": 180}
print(d)
# d = {1: 11, 2: 10}
# print(d)
# 2 . 查: 通过key获取value
print(d['name'])
print(d.get('name'))
# print(d['sex']) # 找不到key,报错
print(d.get('sex')) # 找不到key 不报错,但是返回None
print(d.get('sex', "man")) # 找不到key 不报错,返回默认值
key = "name"
print(d[key])
print(d.get(key))
print()
# 3. 遍历字典
d = {
"name": "蔡徐坤", "age": 22, "height": 180}
for k in d:
print(k) # key
for k in d.keys():
print(k) # key
for v in d.values():
print(v) # value
for k, v in d.items():
print(k, v)
k = d.keys()
print(k, list(k)) # dict_keys(['name', 'age', 'height']) ['name', 'age', 'height']
# 4. 合并
# print({1: 2} + {3: 4}) # 错误
d1 = {
1: 2}
d2 = {
3: 4}
d1.update(d2)
print(d1) # {1: 2, 3: 4}
# 5. 增删查改
d = {
"name": "蔡徐坤", "age": 22, "height": 180}
# 增
d['sex'] = '男'
print(d)
# 改 只能修改值
d['age'] = 30
print(d)
# 删
d.pop('age') # 删除指定key的元素
# d.clear() # 清空字典
d.popitem() # 删除最后一项,可以认为随机删除一项
print(d)
# 6. 长度
print(len(d))
# 7. 成员 # 判断key在字典中是否存在
print('age' in d)
# 8.zip
d = dict(name='鹿晗', age=30)
print(d)
d = dict(zip(['name', 'age'], ['鹿晗', 30]))
d = dict(zip('123', 'abc'))
print(list(zip(['name', 'age'], ['鹿晗', 30])))
print(d)
"""
列表和字典的区别:
列表 list :
1. 定义方式:[] ,一般存放相同类型的数据
2. 内存相对字典较小
3. 数据量比较大时,数据越大越明显 ,查找所需时间越久
字典 dict :
1. 定义方式 :{} ,一般存放同一个事物的不同属性
2. 内存消耗会比较大
3. 数据量多少对查找速度影响不大
"""
二、集合set
特点:不允许有重复元素,可以进行交集,并集,差集的运算
本质:无序,无重复元素的集合
一般还是用列表多一点
# 1. 创建集合
s = {
1, 2, 3, 2, 5, 3, 6}
print(s)
s = set()
print(s) # set() 空集合
# 无序
s = {
'a', 'b',