假设我有如下字典
dic = {0: [1,2,3,4,5], 1:[7,4,6]}
在将字典打印为键和计数时,首先更新字典
for k, v in dic.items():
dic[k] = len(v)
print(dic)
>>> {0:5, 1:3}
在没有for循环的情况下,还有更好的方法吗?
答案 0 :(得分:0)
您是什么意思而不迭代?如果您不想使用for
循环,则可以使用map函数:
d = dict(map(lambda kv: (kv[0], len(kv[1])), d.items()))
答案 1 :(得分:0)
如果没有迭代只是意味着没有for
循环,则可以将dict值映射到len
函数,用dict键压缩它们并传递压缩的键值与dict构造函数配对:
>>> d = {0: [1,2,3,4,5], 1:[7,4,6]}
>>> dict(zip(d, map(len, d.values())))
{0: 5, 1: 3}
>>>
答案 2 :(得分:0)
首先不要命名列表“ list”或字典“ dict”,因为这是python中保留该数据类型的类的保留字。
您可以使用字典理解力来做到这一点,如下所示:
d = {0: [1,2,3,4,5], 1:[7,4,6]}
d = {i:len(j) for i,j in d.items()}
print(d)
答案 3 :(得分:0)
或使用:
print({k:len(dic[k]) for k in dic})
输出:
{0: 5, 1: 3}