我是编程新手,也是 python 新手,我有一个问题在互联网上找不到答案。我想知道你们中是否有任何天才能够帮助我。
我有一本字典,在字典中,键是字符串,值是列表。我想知道是否可以翻这本字典:
dict1 = {'a':(1, 4, 7), 'b':(2, 5, 8), 'c':(3, 6, 9)}
将每个值复制一次到这种格式中,以便重复项紧挨着原始值:
dict1 = {'a':(1, 1, 4, 4, 7, 7), 'b':(2, 2, 5, 5, 8, 8), 'c':(3, 3, 6, 6, 9, 9)}
请您参考如下方法:
您可以使用 dictionary comprehension :
>>> dict1 = {'a':(1, 4, 7), 'b':(2, 5, 8), 'c':(3, 6, 9)}
>>> {x:tuple(z for z in y for _ in xrange(2)) for x,y in dict1.iteritems()}
{'a': (1, 1, 4, 4, 7, 7), 'c': (3, 3, 6, 6, 9, 9), 'b': (2, 2, 5, 5, 8, 8)}
>>>
但请注意,以上代码是在 Python 2.7 中构建的。如果你使用的是 Python 3.x,你会想要这个:
>>> dict1 = {'a':(1, 4, 7), 'b':(2, 5, 8), 'c':(3, 6, 9)}
>>> {x:tuple(z for z in y for _ in range(2)) for x,y in dict1.items()}
{'a': (1, 1, 4, 4, 7, 7), 'c': (3, 3, 6, 6, 9, 9), 'b': (2, 2, 5, 5, 8, 8)}
>>>
此外,在这两种解决方案中,都无法保证键的顺序。这只是字典在 Python 中实现方式的结果。
