由于一些切片我以前在我的剧本,我才结束了一个巨大的元组,看起来像这样:如何将列表中的某些项目从列表转换为浮点型?
(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, [102.37], [129.6], [190.64], [181.98], [192.79])
在上面的例子中前7项是花车,其余是包含每一个元素列表,这也是漂浮物。
我想摆脱清单,并保持浮动,所以我可以加起来所有的价值来计算6个月期间的平均股票价格。
什么是达到这个最pythonic方式?
由于一些切片我以前在我的剧本,我才结束了一个巨大的元组,看起来像这样:如何将列表中的某些项目从列表转换为浮点型?
(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, [102.37], [129.6], [190.64], [181.98], [192.79])
在上面的例子中前7项是花车,其余是包含每一个元素列表,这也是漂浮物。
我想摆脱清单,并保持浮动,所以我可以加起来所有的价值来计算6个月期间的平均股票价格。
什么是达到这个最pythonic方式?
这个函数返回一个float它是否给出一个浮动或列表:
def delistify(x):
try:
return x[0]
except TypeError:
return x
如果您需要的输出是一个元组,你可以用它喜欢:
print tuple(delistify(x) for x in my_list)
或者,如果列表也行,最Python的是一个列表理解:
print [ delistify(x) for x in my_list ]
不错!这是做的伎俩,谢谢队友。 –
如果你想从列表中提取的数字:
In [1]: t = (0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, [102.37], [129.6], [190.64], [181.98], [192.79])
In [2]: tuple(tt if isinstance(tt, float) else tt[0] for tt in t)
Out[2]: (0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 102.37, 129.6, 190.64, 181.98, 192.79)
如果你想“摆脱”的名单:
In [3]: tuple(tt for tt in t if isinstance(tt, float))
Out[3]: (0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0)
使用'type'函数进行类型检查并不可靠。你应该使用'isinstance'来代替。 –
@ScottHunter yup - 显然OP想要从列表中提取数字。 – xnx
你想再次结束了一个元组?或者你想要一个列表? –
我想保留元组。 –