例如,考慮包含字母字符串和數字轉換Python列表爲花車,其中列表還包含單詞
a = ['Total', '1', '4', '5', '2']
它是如何將有可能將其轉換成混合值列表清單在Python
b = ['Total', 1.0, 4.0, 5.0, 2.0]
需要注意的是,一般大家可能不知道,其中字母串會出現在列表中,即我們可能有
a = ['Total', '1', '4', 'Next', '2']
例如,考慮包含字母字符串和數字轉換Python列表爲花車,其中列表還包含單詞
a = ['Total', '1', '4', '5', '2']
它是如何將有可能將其轉換成混合值列表清單在Python
b = ['Total', 1.0, 4.0, 5.0, 2.0]
需要注意的是,一般大家可能不知道,其中字母串會出現在列表中,即我們可能有
a = ['Total', '1', '4', 'Next', '2']
您可以使用發電機功能和異常處理:
>>> def func(seq):
for x in seq:
try:
yield float(x)
except ValueError:
yield x
...
>>> a = ['Total', '1', '4', '5', '2']
>>> list(func(a))
['Total', 1.0, 4.0, 5.0, 2.0]
打敗我吧。 +1和一個小的編輯來糾正縮進。 –
感謝Ashwini +1 – rwolst
只是轉換的一切,但第一列:
b = a[:1] + [float(i) for i in a[1:]]
從your other question來看你正在處理一個CSV文件,因此如果第一列總是一個字符串,沒有意義轉換每一行的那一部分:
>>> a = ['Total', '1', '4', '5', '2']
>>> a[:1] + [float(i) for i in a[1:]]
['Total', 1.0, 4.0, 5.0, 2.0]
你也可以使用try:
- except ValueError
的方法,但是爲什麼會在事先知道哪些列有文本,哪些列有數字值時引發開銷?
假設你的最終目標是不是一個CSV文件包,我建議pandas.read_csv。
即使'a [0] .isdigit()== True','b [0]'是否總是一個字符串? –
或者,你可以斷言'a [0] .isdigit()== False'? –
我個人正在尋找一種通用的方法去處理它,即[3]也可能是一個字符串(在字符串中)。 – rwolst