字典类型内置方法

1.作用

对于值添加描述信息使用它.多用于存的值表示的是不同的状态时,例如存的值有姓名、年龄、身高、体重、爱好。

2.定义方式

用{}以逗号隔开加入键值对key:value. (value可以是任意数据类型,而key通常应该是字符串类型,但是key必须为不可变类型。

info_dict = {'name':'wang','age':18,'height':120,'gender':'female','hobby_list': ['eat', '666', '233']}

3.内置方法

# 优先掌握
# 1.按key取值,即可取也可改变
print(info_dict['hobby_list'])
info_dict['age'] = 20
print(info_dict)

# 2.长度len
print(len(info_dict))

# 3.in/not in
print('name' in info_dict)

# 4.for循环
for i in info_dict:
    print(i)

# 5.keys/value/items(items用的最多,一般和解压缩一起用)
print(list(info_dict.keys()))
print(list(info_dict.values()))
print(list(info_dict.items()))

for i in info_dict.values():
    print(i)
info_dict = {'name':'wang','age':18,'height':120,'gender':'female','hobby_list': ['eat', '666', '233']}
print(info_dict.items())

for i in info_dict.items():
    print(i)

for k,v in info_dict.items():
    print(k,v)

lt = [[1,2,3],[2,3,4],[5,6,7]]
for a,b,c in lt:
    print(a,b,c)

## 需要掌握
info_dict = {'name':'wang','age':18,'height':120,'gender':'female','hobby_list': ['eat', '666', '233']}
print(info_dict.copy())

info_dict.pop('name')
print(info_dict)

info_dict.popitem() # 早期的时候字典是无序的,是随机删除的,但是由于python3底层优化了字典,让字典看的貌似有序了,所以默认删除最后一个
print(info_dict)

# info_dict.clear()
# print(info_dict)

print(info_dict.get('age'))
print(info_dict['name'])
print(info_dict.get('name','nick')) # 如果有,就返回真正的值;如果没有,默认返回None,也可以指定返回

info_dict.setdefault('gender',123123) # 有则不变,无则往里面追加了值
print(info_dict)

# D.setdefault(k[,d]) -> D.get(k,d),also set D[k]=d if k not in D

D = {'a':1,'b':2}

def setdefault(D,k,d):
    D.get(k,d) # 获取'gender',如果不存在gender那就返回123123
    if k not in D:
        D[k] = d

setdefault(D,'a',3)
print(D)

info_dict = {'name':'wang','age':18,'height':120,'gender':'female','hobby_list': ['eat', '666', '233']}

info_dict.update({'a',1})
print(info_dict)

# fromkeys由dict.出来,快速造一个字典
print(dict.fromkeys(['a',2,3,4,5],'nick'))

4.存一个值还是多个值

多个值。值可以是多个类型,key必须是不可变类型,通常应该是不可变类型中的字符串类型

5.有序还是无序

无序

6.可变or不可变(重点)

可变

dic = {'a':1}
print(id(dic))
dic['b'] = 1
print(id(dic))
原文地址:https://www.cnblogs.com/yushan1/p/11316315.html