繁体   English   中英

将字典转换成元组列表

[英]Convert a dictionary into a list of tuples

给定这样的字典:

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存储元素的顺序也不固定。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM