我有一个看起来像下面的列表:
['PSHELL 102 156800 1.55 156800 1. 156800\n',
'PSHELL 103 143120 1.55 143120 1. 143120\n',
'PSHELL 104 143120 1.55 143120 1. 143120\n',
'PSHELL 105 114700 0.7 114700 1. 114700\n',
'PSHELL 106 114700 0.7 114700 1. 114700\n',
'PSHELL 107 114700 1.3 114700 1. 114700\n']
我想删除列表中每个元素的最后三个字符串。并用不同的值填充它。
例如:删除156800 1. 156800 \ n,对每个元素使用相同的方法。并在那里添加新值。
我期望得到以下结果:
['PSHELL 102 156800 1.55 1.085 2.015
'PSHELL 103....]
Here 1.085= 1.55-(1.55 x 0.3)
2.015= 1.55+(1.55 x 0.3)
I tried achieving this by converting my list to dataframe, but it is not allowing me to do above math calculation.
答案 0 :(得分:0)
使用简单的迭代。
例如:
data = ['PSHELL 102 156800 1.55 156800 1. 156800\n',
'PSHELL 103 143120 1.55 143120 1. 143120\n',
'PSHELL 104 143120 1.55 143120 1. 143120\n',
'PSHELL 105 114700 0.7 114700 1. 114700\n',
'PSHELL 106 114700 0.7 114700 1. 114700\n',
'PSHELL 107 114700 1.3 114700 1. 114700\n']
result = []
for i in data:
val = i.strip().split()[:-3] #Remove last 3 elements using list slicing.
lVal = float(val[-1])
val += [str(lVal - (lVal * 0.3)), str(lVal + (lVal * 0.3))] #Add new values
result.append(" ".join(val)) #Form String.
输出:
['PSHELL 102 156800 1.55 1.085 2.015',
'PSHELL 103 143120 1.55 1.085 2.015',
'PSHELL 104 143120 1.55 1.085 2.015',
'PSHELL 105 114700 0.7 0.49 0.91',
'PSHELL 106 114700 0.7 0.49 0.91',
'PSHELL 107 114700 1.3 0.91 1.69']