1.字典的Key()方法是把所有key 值放到一个列表中
a={"name":"alex","hobby":"抽烟"}
l=a.keys()
print(l)
print(l[0])#TypeError: 'dict_keys' object does not support indexing
l[0]="哈哈"#TypeError: 'dict_keys' object does not support item assignment
for n in l:
print(n)
这种可dict_keys类型列表不能被索引,不能被切片
dict_values也一样
2.dict的formkeys方法
dic={1:"hh","k":22} ret=dic.fromkeys("哈嘿呵",666) print(dic) print(ret) ret1=dict.fromkeys("哈哈哈",666) print(ret1) # {1: 'hh', 'k': 22} {'哈': 666, '嘿': 666, '呵': 666} {'哈': 666}
fromkeys是字典的静态方法,他会返回一个新的字典,原来的字典不会更改
fromkeys第一个对象必须是可迭代对象.迭代之后必须是可哈希的元素,
fromkeys将第一个对象那个迭代成n个key值,与第二个元素分别组成键值对,建立一个新字典.若迭代对象中有重复的,会自动去重
fromkeys的值公一个地址,若其中一个值变化,其他两个值也会变化
3.dict知识点复习
增:
dic[k]=v
# 如果dict中没有出现这个key, 就会新增一个key-value的组合进dict dic['age'] = 18 print(dic)
# 如果dict中没有出现过这个key-value. 可以通过setdefault设置默认值
dic.setdefault('李嘉诚') # 也可以往里面设置值. dic.setdefault("李嘉诚", "房地产") # 如果dict中已经存在了. 那么setdefault将不会起作用 print(dic)
dic.setdefault:
.1.若dic存在key,则新建失败,返回原value值
.2.若dic不存在key,则返回新的Value值
,若key对应None,返回None
删:
pop(指定元素):删除指定key对应的键值对,返回值为Value
popitem():随机删除某个键值对,返回一个元祖,元祖中是被删除的(k,v)
clear():清空字典,返回None
修改:
dic.update(dic1) # 把dic1中的内容更新到dic中. 如果key重名. 则修改替换. 如果不存在key, 则新增.
可以通过key索引修改value
查:
通过keys 查询value
print(dic['name']) #print(dic['sylar'] # 报错 print(dic.get("ok")) print(dic.get("sylar")) #None print(dic.get("sylar","牛B")) #牛b
dic[key]:若key存在,返回value,若不存在,报错
dic.get(key):若key存在,返回value,若不存在,返回None
dic.get(key,n):若key存在,返回value,若不存在,返回n