Skip to main content
 首页 » 编程设计

python之在字典中的列表中以某种方式复制值

2025年05月04日19tuyile006

我是编程新手,也是 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 中实现方式的结果。