字典
列表推导式:
c_table=["a","c","d"] d_table=["A","C","D"] code=input("请输入密码:") split_code=code.split(" ") result=[d_table[c_table.index(each)]for each in split_code] print(result)
字典实现:
c_table={"a":"A","c":"C","d":"D"} code=input("请输入密码:") split_code=code.split(" ") result=[c_table[each]for each in split_code] print(result)
生成字典
1:以 {} 和 : 组成--x={"吕布":"口口布","关羽":"关习习"}
2:dict()函数,每个参数为一个键值对,键不可以加引号
b=dict(吕布="口口布",关羽="关习习")
3:通过列表和元组的组合
c=dict([("吕布","口口布"),("关羽","关习习"),("刘备","刘宝贝")])
{'吕布': '口口布', '关羽': '关习习', '刘备': '刘宝贝'}
4:快速初始化所有的键值
d=dict.fromkeys("fishc",250)
print(d)
{'f': 250, 'i': 250, 's': 250, 'h': 250, 'c': 250}
d.pop("s") #弹出s对应的值
250
d
{'f': 250, 'i': 250, 'h': 250, 'c': 250} #d中已删除s及其对应的值
d.pop("狗","没有") #若没有对应的键,且防止程序报错,可设置一个default值
'没有'
5:常用的函数
删:d.popitem() #删除最后加入的一个键值对
del d["i"] #删除指定的键值对
改:update([other]) #同时修改和更新多个键值对:
d=dict.fromkeys("fishc")
d
{'f': None, 'i': None, 's': None, 'h': None, 'c': None}
d['s']=112
d
{'f': None, 'i': None, 's': 112, 'h': None, 'c': None}
d.update({'i':12,'h':45})
d
{'f': None, 'i': 12, 's': 112, 'h': 45, 'c': None}
查:get(key[,default])
d.get('C',"这里没有")
'这里没有'
setdefault(key,[,default]) #给不存在的键,赋值default,同时原来的字典发生了更新
d.setdefault('C',"code")
'code'
d
{'f': None, 'i': 12, 's': 112, 'h': 45, 'c': None, 'C': 'code'}
items() keys() values() 分别用于获取字典的键值对、键和值 三者的视图对象
视图对象为字典的动态视图,当字典的内容发生改变时,视图对象的内容也相应的跟着改变
举例:
p=dict.fromkeys("abcde",100)
p
{'a': 100, 'b': 100, 'c': 100, 'd': 100, 'e': 100}
p.update({'a':1})
p
{'a': 1, 'b': 100, 'c': 100, 'd': 100, 'e': 100}
keys=p.keys()
values=p.values()
items=p.items()
items
dict_items([('a', 1), ('b', 100), ('c', 100), ('d', 100), ('e', 100)])
p.pop('a')
1
p
{'b': 100, 'c': 100, 'd': 100, 'e': 100}
items
dict_items([('b', 100), ('c', 100), ('d', 100), ('e', 100)])
6:字典的嵌套
d={"吕布":{"语文":60,"数学":80,"英语":90},"关羽":{"语文":70,"数学":90,"英语":100}}
d
{'吕布': {'语文': 60, '数学': 80, '英语': 90}, '关羽': {'语文': 70, '数学': 90, '英语': 100}}
d["吕布"]["数学"] #进行两次索引
80
7:字典推导式
d={'f':20,'i':30,'s':40,'h':50}
b={v:k for k,v in d.items()} #互换键和值
b
{20: 'f', 30: 'i', 40: 's', 50: 'h'}
g={v:k for k,v in d.items() if v<40} #增加了筛选条件
g
{20: 'f', 30: 'i'}
字典求出字符的编码值
d={x:ord(x) for x in "fishc"}
d
{'f': 102, 'i': 105, 's': 115, 'h': 104, 'c': 99}