random随机库以及list列表和dic字典的问题

一.Python中list实例是不能当作dict的关键字的!
例如:
ip = [ ‘127.0.0.1’, ‘192.168.0.1’ ]
ips = {}
ips[ ip ] = ‘someip’
会报错:list object cannot be unhashed.

我想是因为字典的关键字必须是不可变的(unmutabl),而列表是本地可变的(mutable),所以不能用list来作为关键字。如果真的需要上面代码中类似的功能,可以将list转变为tuple即可。例如:
tuple( [1,2,3] ) 即得到:(1,2,3)。
而tuple是本地不可变的,所以可以作为字典的关键字。

二.random随机库函数的列表和字典的问题
1.random.randint(a,b)
a和b是都可以随机到的
2.random.sample(,num)
可以是字符串\列表\元组均可,但不能是字典.
返回值都是
字典需要处理成列表再sample
字典处理的时候,要注意用lst()处理一下,
sample时直接用dict.items(),会提示warning:sampling from a set deprecated since 3.9 and will be removed in Subsequent versions
后续版本就不能用了,注意不要这么写了.用lst转化成列表再用.

dic={0:"y",1:"c",2:"y",3:"c"}
d = dic.items()
k = dic.keys()
v = dic.values()
#返回值不是标准列表,是这种dict_items([(0, 'y'), (1, 'c'), (2, 'y'), (3, 'c')])

lst = list(d)
[(0, 'y'), (1, 'c'), (2, 'y'), (3, 'c')]
#返回值是['y', 'c', 'y', 'c']
lst = list(k)#或者list(dic)
#返回值是['0', '1', '2', '3']
lst = list(v)
#返回值是['y', 'c', 'y', 'c']

huibif的学习笔记

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值