字典

key不能重复,如果重复会把value值替换掉。字典的key实际上是自动排重。

>>> d={}
>>> type(d)
<class 'dict'>
>>> isinstance(d,dict)
True
>>> d[1]="a"
>>> d
{1: 'a'}
>>> d[[1]]=1	
>#字典前面的key必须是一个不可变类型,可以用数字、字符串、元组做key
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unhashable type: 'list'
>>> d={}
>>> d[1]=1
>>> d
{1: 1}
>>> d[1]=2
>>> d
{1: 2}

快速生成字典:

>>> d=dict(a=1,b=2,c="3")
>>> d
{'a': 1, 'b': 2, 'c': '3'}

遍历:默认遍历他的key,两种方法都可以

>>> for i in d:
...     print(i)
...
a
b
c
>>> for i in d.keys():
...     print(i)
...
a
b
c

遍历values

>>> for i in d.values():
...     print(i)
...
1
2
3

同时遍历key和values

>>> for k,v in d.items():
...     print(k,":",v)
...
a : 1
b : 2
c : 3
>>> list(d.items())
[('a', 1), ('b', 2), ('c', '3')]
>>> for k,v in d.items():
...     print(k,"=",v)
...
a = 1
b = 2
c = 3

排序:

>>> user={'user3':'a','user2':'c','user1':'b'}
>>> user.items()
dict_items([('user3', 'a'), ('user2', 'c'), ('user1', 'b')])
>>> sorted(user.items(),key=lambda e:e[0],reverse=False)
[('user1', 'b'), ('user2', 'c'), ('user3', 'a')]

默认值setdefault():如果字典中包含给定值,则返回该键对应的值,否则返回为该键设置的值

>>> d.setdefault("a",1)
1
>>> d
{'a': 1, 'x': 2, 'c': 3}
>>> d.setdefault("m",1)
1
>>> d
{'a': 1, 'x': 2, 'c': 3, 'm': 1}

zip()
将可迭代对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表

>>> dict(a=1,b=2,c=3)
{'a': 1, 'b': 2, 'c': 3}
>>> zip([1,2,3],[4,5,6])
<zip object at 0x000000000288AA08>
>>> list(zip([1,2,3],[4,5,6]))	#生成列表
[(1, 4), (2, 5), (3, 6)]
>>> dict(zip([1,2,3],[4,5,6]))	#生成字典
{1: 4, 2: 5, 3: 6}
>>> dict([(1,2),(3,4)])
{1: 2, 3: 4}

fromkeys()返回一个新的字典

>>> d={}
>>> d.fromkeys([1,2,3],"a")
{1: 'a', 2: 'a', 3: 'a'}
>>> d.fromkeys([1,2,3],100)
{1: 100, 2: 100, 3: 100}
>>> d=d.fromkeys([1,2,3])
>>> d
{1: None, 2: None, 3: None}
>>> d=dict.fromkeys([1,2,3])
>>> d
{1: None, 2: None, 3: None}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值