Python

有序、有下标、必须成对出现、key不可重复

字典

代码示例:

# 有内容的字典:
foo = {1:True,False:'bar',2.0:56,(1,):[1,2,3,{1:2,2:3}]}

# 列表转字典(字典转列表会保存键舍弃值):
bar = dict([('bar','foo'),('foo','bar')])

增删改查

方法注释
popitem删除最后一对键值对(返回值:tuple)
get返回指定键的值(如字典里无指定键,则返回None)
values返回字典的全部值(返回值:tuple嵌套list)
keys返回字典的全部键(返回值:tuple嵌套list)
items返回字典中的全部键值对(返回值:tuple嵌套list嵌套tuple)
setdefault往字典里添加一对指定的键值对(同键名则不可以覆盖其值)
update追加指定键值对(必须是字典类型)
fromkeys创建一个字典(可迭代对象的元素作为键,指定值作为键的公共值)

代码示例:

# 增加、修改(覆盖):
foo = {'foo':7,'bar':2}
foo['awsl'] = 7  # {'foo':7,'bar':2,'awsl':7}
foo['awsl'] *= 2  # {'foo':7,'bar':2,'awsl':14}

# 删除:
foo = {'foo':22,'bar':33}
foo.clear()  # {}
bar = foo.pop('foo')  # 用键代替下标成对删
print(foo)  # {'bar':33}
print(bar)  # 22

foo.popitem()

del foo['foo']
del foo

# 遍历、查询:
foo = {'foo':11,'bar':22}
foo.get('foo')  # 11
foo.get('foo','fq')  # 如字典里无指定键,则返回'fq'
foo['foo']  # 11(如字典里无指定键,则报错)
len(foo)  # 2(键值对数)

foo.keys()
list(foo.keys())  # 转换为列表
for i in foo:
    print(i)  # 遍历键
for i in foo.keys():  # 底层会自动转换为列表
    print(i)  # 遍历键

foo.values()
list(foo.values())  # 转换为列表
for i in foo.values():  # 底层会自动转换为列表
    print(i)  # 遍历值

foo.items()
for i in foo.items():  # 底层自动转换为元组
    print(i)  # ('foo',11),('bar',22)
for i,j in foo.items():
    print(i,j)  # foo 11 bar 22

foo.setdefault('foo':1024)

foo.update({'bar':2048})

print(dict.fromkeys([1,2,3],99))  # {1: 99, 2: 99, 3: 99}

# 嵌套字典:
foo = {'bar':{1:2}}

foo['bar'][1]  # 2
foo['bar'][3] = 4  # {'bar': {1: 2, 3: 4}}