字典错误点与复习

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

猜你喜欢

转载自www.cnblogs.com/zxmbky/p/9179656.html
今日推荐