邮件列表和列表

时间:2014-10-11 05:46:18

标签: python list iteration tuples

我有tuple,其中包含标量和列表

(25.69, [25.5, 29.5], [0.00153, 0.0222], 0.0, [0.04109, 0.08877], [0.31393, 0.34876], [0.75, 0.63])

我需要对第一个tuple进行操作,结果是:

((25,69, 25.5, 0.00153, 0.0, 0.04109, 0.31393, 0.75), (25.69, 29.5, 0.222, 0.0, 0.08877, 0.34876, 0.63))

第一个列表表示需要传递给函数的参数组合。我需要将其转换为tuple两个tuples,以便每个都可以传递给函数。

我查看了zipmapitertools.izip_longest,但每个都要求args已经拆分。

1 个答案:

答案 0 :(得分:3)

zipgenerator expressionconditional expression

一起使用
>>> xs = (25.69, [25.5, 29.5], [0.00153, 0.0222],
....      0.0, [0.04109, 0.08877], [0.31393, 0.34876], [0.75, 0.63])
>>> zip(*(x if isinstance(x, list) else [x, x] for x in xs))  # list(zip(...)) in Py 3
[(25.69, 25.5, 0.00153, 0.0, 0.04109, 0.31393, 0.75),
 (25.69, 29.5, 0.0222, 0.0, 0.08877, 0.34876, 0.63)]

条件表达式用于将标量值转换为列表。

x if isinstance(x, list) else [x, x]