我有两个清单:
list1=[0,0,0,1,1,2,2,3,3,4,4,5,5,5]
list2=['a','b','c','d','e','f','k','o','n','q','t','z','w','l']
dictionary=dict(zip(list1,list2))
我想为每个键输出同一个键的值,这样它就可以这样打印了:
^{pr2}$我写了下面的代码来实现这一点,但它并不像我想的那样有效
for k,v in dictionary.items():
print (k,v)
你能告诉我如何修改代码,这样我就能得到预期的结果吗? 提前谢谢!在
关于您的代码:
创建词典:
^{pr2}$这将丢失每个组中除最后一个值之外的所有值。您需要处理压缩的列表来构造分组数据。有两种方法是使用
itertools.groupby()
或使用defaultdict(list)
,如下所示。在使用列表的^{} 将键来自}的项分组。将每个列表中的项与^{} 配对:
list1
和值来自{输出:
因为字典中的项是无序的,所以输出是按键排序的。在
您可以使用
itertool.groupby
来获得简洁的单行解决方案:输出:
^{pr2}$您显示的代码与您所描述的完全不同。在
除此之外,您还可以通过先压缩列表,然后使用
collections.defaultdict
对同一个键的值进行分组:相关问题 更多 >
编程相关推荐