由於一些切片我以前在我的劇本,我才結束了一個巨大的元組,看起來像這樣:如何將列表中的某些項目從列表轉換爲浮點型?
(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
你想再次結束了一個元組?或者你想要一個列表? –
我想保留元組。 –