我有一組以下方式的資料:名稱 功能。這些功能按以下方式編號:
'A 1:0.5 2:0.4 3:0.6 4:0.2 5:0.1 6:0.6
B 1:0.0 2:0.9 3:1.0 4:0.3 5:0.1 6:0.3'
理想情況下,我希望有一個僅包含功能(作為浮點數)的串列,例如,對于 A:
mylist = [0.5,0.4,0.6,0.2,0.1,0.6]
使用 split 并洗掉名稱后,我會得到一個包含功能“索引”的字串串列。這個:
myliststr = ['1:0.5','2:0.4','3:0.6','4:0.2','5:0.1','6:0.6']
在將它們轉換為浮點數之前,如何有效地從字串中洗掉這些“索引”?
uj5u.com熱心網友回復:
您可以使用串列理解split:
myliststr = ['1:0.5','2:0.4','3:0.6','4:0.2','5:0.1','6:0.6']
output = [float(x.split(':')[1]) for x in myliststr]
print(output) # [0.5, 0.4, 0.6, 0.2, 0.1, 0.6]
同樣,您可以通過組合串列理解和split適當地處理原始文本:
s = '''A 1:0.5 2:0.4 3:0.6 4:0.2 5:0.1 6:0.6
B 1:0.0 2:0.9 3:1.0 4:0.3 5:0.1 6:0.3'''
output = [[float(x.split(':')[1]) for x in line.split()[1:]] for line in s.splitlines()]
print(output) # [[0.5, 0.4, 0.6, 0.2, 0.1, 0.6], [0.0, 0.9, 1.0, 0.3, 0.1, 0.3]]
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/317677.html
上一篇:找到第一個非空和非空字串值
