【问题标题】:assigning values from a list of tuples [duplicate]从元组列表中分配值[重复]
【发布时间】:2018-08-06 13:22:10
【问题描述】:

我有一个元组列表(来自上一个处理),我想按列分配给新列表。我可以逐列执行此操作。但我想知道是否有更智能的单线解决方案。

>>> lt= [(3.249, 0.5), (1.393, 0.55), (0.766, 0.6), (0.489, 0.66), (0.396, 0.7), (0.291, 0.78), (0.247, 0.84), (0.216, 0.9), (0.195, 0.96)]
>>> l0= [x[0] for x in lt]
>>> l1= [x[1] for x in lt]
>>> l0
[3.249, 1.393, 0.766, 0.489, 0.396, 0.291, 0.247, 0.216, 0.195]
>>> l1
[0.5, 0.55, 0.6, 0.66, 0.7, 0.78, 0.84, 0.9, 0.96]

我正在寻找类似(伪代码)的东西

(l0,l1) = ([x[0] for x in lt],[x[1] for x in lt]

感谢您的反馈。

【问题讨论】:

  • 您的解决方案似乎很好

标签: python list tuples


【解决方案1】:
l0,l1=zip(*lt)

使用 zip 你可以做到这一点。

l0,l1=map(list,zip(*lt)) # To get as list 

【讨论】:

  • l0,l1=list(zip(*lt)) 可以只是l0, l1 = zip(*lt) (解包语法已经实现了结果,当list在构造后立即被丢弃时无需列出)。同样,您的 map 方法周围的最外面的括号完全是多余的(它们在这里根本不做任何事情)。
猜你喜欢
  • 1970-01-01
  • 2019-06-12
  • 1970-01-01
  • 2014-12-31
  • 2015-10-16
  • 1970-01-01
  • 1970-01-01
  • 2015-08-18
  • 1970-01-01
相关资源
最近更新 更多