Skip to main content
 首页 » 编程设计

python之将字典转换为元组列表

2025年05月04日22zfyouxi

给定一个这样的字典:

dic = {(7, 3): 18.51, (1, 3): 18.751, (5, 6): 34.917, (9, 8): 18.9738} 

我想将它转换成这样的元组列表:

my_list = [(7, 3, 18.51), (1, 3, 18.751), (5, 6, 34.917), (9, 8, 18.9738)] 

我本可以使用循环,但我想知道是否有一种巧妙的方法来代替循环。

请您参考如下方法:

简单地在一些生成器上使用list(..):

my_list = list(key+(val,) for key,val in dic.items()) 

这是因为:

  • list(..)将可迭代对象作为输入并将其转换为列表;和
  • key+(val,) for key,val dic.items() 是一个生成器,它接受一对 dic 的键值并将其转换为元组将 val 附加到 key。

由于我们使用列表生成器,我们可以使用列表理解来简化它:

my_list = [key+(val,) for key,val in dic.items()] 

最后请注意,元组出现的顺序不固定,这是因为 dict 存储元素的顺序也不固定。