python学习3-字典

目录

创建字典

dict():

使用[key]添加、修改元素

update()

del

clear()

in

使用[key]获取元素

get()

keys()

values()

items()

使用 = 赋值,copy() 复制


创建字典

字典内元素是键值对的形式,可进行增加、删除、修改。

用{}创建字典,格式:{key:value};

有时候创建会出错,检查是否在每一个元素最后都加上了,(列表、元组也可以加)

>>> empty_dict = {}
>>> empty_dict
{}
>>> dict1 = {"day":"one,two",
... "222":"33dg",
... "key2":"terr",
... "key2":"1,2,3,4",
... }
>>> dict1
{'day': 'one,two', '222': '33dg', 'key2': '1,2,3,4'}

dict()

将包含双值子序列的其他类型(列表、元组)转换为字典

>>> list1 = [['a','b'],['c','d']]
>>> dict(list1)
{'a': 'b', 'c': 'd'}
>>> list2 = [("a",1),("b",2)]
>>> dict(list2)
{'a': 1, 'b': 2}
>>> tuple1 = (["c",3],["d",4])
>>> dict(tuple1)
{'c': 3, 'd': 4}
>>> tuple2 = (("a",1),("b",2))
>>> dict(tuple2)
{'a': 1, 'b': 2}
>>> list3 = ("ab","12")
>>> dict(list3)
{'a': 'b', '1': '2'}
>>> tuple3 = ["ab","34"]
>>> dict(tuple3)
{'a': 'b', '3': '4'}

使用[key]添加、修改元素

指定该元素的键并赋予相应的值,如果键存在,则对应值被覆盖;如果键不存在,则新加入键和值;

>>> dict2 = {"aaaa":"bbb",
... "cccc":"ddddd",
... "eeee":"fff",
... "gggg":"hhhhh"
... }
>>> dict2
{'aaaa': 'bbb', 'cccc': 'ddddd', 'eeee': 'fff', 'gggg': 'hhhhh'}
>>> dict2["iiii"] = "jjjjj"
>>> dict2
{'aaaa': 'bbb', 'cccc': 'ddddd', 'eeee': 'fff', 'gggg': 'hhhhh', 'iiii': 'jjjjj'}
>>> dict2["aaaa"] = "changebbb"
>>> dict2
{'aaaa': 'changebbb', 'cccc': 'ddddd', 'eeee': 'fff', 'gggg': 'hhhhh', 'iiii': 'jjjjj'}

update()

合并字典,

待添加的字典和待扩充的字典中有相同的键,新的字典中对应键的值会取代原来的值

>>> dict1 = {"a":"aaaaa",
... "b":"bbbbb",
... "c":"cccccc"
... }
>>> dict1
{'a': 'aaaaa', 'b': 'bbbbb', 'c': 'cccccc'}
>>> dict2 = {"c":"33333","d":"ddddd"}
>>> dict1.update(dict2)
>>> dict1
{'a': 'aaaaa', 'b': 'bbbbb', 'c': '33333', 'd': 'ddddd'}
>>> dict3 = {"e":"eeee"}
>>> dict3.update(dict1)
>>> dict3
{'e': 'eeee', 'a': 'aaaaa', 'b': 'bbbbb', 'c': '33333', 'd': 'ddddd'}

del

删除具有指定键的元素

>>> dict3 = {'e': 'eeee', 'a': 'aaaaa', 'b': 'bbbbb', 'c': '33333', 'd': 'ddddd'}
>>> del dict3["a"]
>>> dict3
{'e': 'eeee', 'b': 'bbbbb', 'c': '33333', 'd': 'ddddd'}

clear()

删除字典所有元素

>>> dict3
{'e': 'eeee', 'b': 'bbbbb', 'c': '33333', 'd': 'ddddd'}
>>> dict3.clear()
>>> dict3
{}

in

判断某个键是否在字典中

>>> dict3 = {'e': 'eeee', 'a': 'aaaaa', 'b': 'bbbbb', 'c': '33333', 'd': 'ddddd'}
>>> "a" in dict3
True
>>> "aaaaa" in dict3
False

使用[key]获取元素
 

>>> dict3 = {'e': 'eeee', 'a': 'aaaaa', 'b': 'bbbbb', 'c': '33333', 'd': 'ddddd'}
>>> dict3["a"]
'aaaaa'

get()

获取字典中某个键对应的值,如果键不存在,则会返回None(什么都不显示,不是空)

语法:字典名.get(键,键不存在时的返回值(可不填))

dict.get(key, default=None)
>>> dict3 = {'e': 'eeee', 'a': 'aaaaa', 'b': 'bbbbb', 'c': '33333', 'd': 'ddddd'}
>>> dict3.get("b")
'bbbbb'
>>> dict3.get("f")
>>>
>>> dict3.get("f","ffff")
'ffff'
>>> dict3.get("a","ffff")
'aaaaa'

keys()

获取所有键,

返回的是dict_keys(),是键的迭代形式,需要手动转换成列表

>>> dict3.keys()
dict_keys(['e', 'a', 'b', 'c', 'd'])
>>> list(dict3.keys())
['e', 'a', 'b', 'c', 'd']

values()

获取所有值

>>> dict3.values()
dict_values(['eeee', 'aaaaa', 'bbbbb', '33333', 'ddddd'])
>>> list(dict3.values())
['eeee', 'aaaaa', 'bbbbb', '33333', 'ddddd']

items()

获取所有键值对

>>> dict3.items()
dict_items([('e', 'eeee'), ('a', 'aaaaa'), ('b', 'bbbbb'), ('c', '33333'), ('d', 'ddddd')])
>>> list(dict3.items())
[('e', 'eeee'), ('a', 'aaaaa'), ('b', 'bbbbb'), ('c', '33333'), ('d', 'ddddd')]

使用 = 赋值,copy() 复制

对字典内容进行修改会反映到所有与之相关联的变量名上

>>> dict1
{'a': 'aaaaa', 'b': 'bbbbb', 'c': '33333', 'd': 'ddddd'}
>>> dict4 = dict1
>>> dict4
{'a': 'aaaaa', 'b': 'bbbbb', 'c': '33333', 'd': 'ddddd'}
>>> dict1["a"] = "11111"
>>> dict1
{'a': '11111', 'b': 'bbbbb', 'c': '33333', 'd': 'ddddd'}
>>> dict4
{'a': '11111', 'b': 'bbbbb', 'c': '33333', 'd': 'ddddd'}
>>> dict5 = dict1.copy()
>>> dict5
{'a': '11111', 'b': 'bbbbb', 'c': '33333', 'd': 'ddddd'}
>>> dict1["b"] = "22222"
>>> dict5
{'a': '11111', 'b': 'bbbbb', 'c': '33333', 'd': 'ddddd'}
>>> dict4
{'a': '11111', 'b': '22222', 'c': '33333', 'd': 'ddddd'}
>>> dict4["d"] = "44444"
>>> dict1
{'a': '11111', 'b': '22222', 'c': '33333', 'd': '44444'}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值