关于python:Python字典学习记录

34次阅读

共计 1452 个字符,预计需要花费 4 分钟才能阅读完成。

字典

Python 内置的数据结构之一,与列表一样是一个可变序列
# 以键值对形式存储数据,无序序列
students = {
    'a': 100,
    'b': 90,
    'c': 75
}
  • students: 字典名;
  • 冒号前为键 key,后为值 value。
  • 依据 key 查找 value 地位,通过 hash(key) 计算;hash(key) 为不可变序列(不反对增删改,如字符串和数字)

字典的特点

  1. 所有元素都是键值对,key 不可反复,value 无限度
  2. 字典中元素是无序的
  3. key 必须是不可变对象(如字符串、数字)
  4. 可动静的伸缩
  5. 节约较大的内存,查问速度快,应用空间换工夫的数据结构

创立形式

# 1. 应用 {}
s = {'1': 1, '2': 2, '3': 3}
# 2. 应用内置函数
x = dict(name='1', age=22)
# 空字典
y = {}

字典的罕用操作

# 1. 获取字典中的元素,应用 []/get()
print(s['1'])  # 1
# print(s['11'])  # key 不存在时,抛出 KeyError: '11'

print(s.get('2'))  # 2
print(s.get('22'))  # key 不存在时,输入 None
print(s.get('22', 222))  # key 不存在时,222 为提供的默认值,后果输入 222

# 2. 判断 key 是否存在在字典中,in/not in
x1 = dict(name='1', age=22)
print('name' in x1)  # True
print('name' not in x1)  # False

# 3. 删除字典中指定的键值对
del x1['name']

# 4. 清空字典
x1.clear()

# 5. 减少键值对
x1['333'] = 222
print(x1)  # {'333': 222}

# 6. 批改键值对
x1['333'] = 333
print(x1)  # {'333': 333}

字典的视图操作

# 1.keys(): 获取字典所有的 key
s1 = {'1': 1, '2': 2, '3': 3}
print(s1.keys())  # dict_keys(['1', '2', '3'])
print(list(s1.keys()))  # ['1', '2', '3'];将 key 的视图转成列表
# 2.values(): 获取字典所有的 values
print(s1.values())  # dict_values([1, 2, 3])
print(list(s1.values()))  # [1, 2, 3];将 values 的视图转成列表
# 3.items(): 获取字典所有的键值对
print(s1.items())  # dict_items([('1', 1), ('2', 2), ('3', 3)])
print(list(s1.items()))  # [('1', 1), ('2', 2), ('3', 3)];将 items 的视图转成列表,由元组组成 

字典元素的遍历

s2 = {'one': 1, 'two': 2, 'three': 3}
for item in s2:
    print(item)

字典生成式

应用内置函数 zip(): 将对象中对应的元素打包成一个元组,返回由这些元组组成的列表
a = ['张三', '李四', '王五']
b = [21, 22, 23]
print(list(zip(a, b)))  # [('张三', 21), ('李四', 22), ('王五', 23)]
# 语法:{key.upper():value for key,value in zip(keys, values)}
print({key.upper(): value for key, value in zip(a, b)})  # {'张三': 21, '李四': 22, '王五': 23}

正文完
 0