Вы можете использовать следующий код:
with open('list.txt', 'r') as myfile:
data=myfile.read()
print([i.strip().split() for i in data.split(' \\n') if len(i.strip())>0])
выход:
[['At', '210.001'], ['Au', '196.9665'], ['B', '10.81'], ['Ba', '137.34']]
Если вы хотите преобразовать 2-й элемент в float
, измените код на:
def floatify_list_of_lists(nested_list):
def floatify(s):
try:
return float(s)
except ValueError:
return s
def floatify_list(lst):
return [floatify(s) for s in lst]
return [floatify_list(lst) for lst in nested_list]
with open('list.txt', 'r') as myfile:
data = myfile.read()
print(floatify_list_of_lists([i.strip().split() for i in data.split(' \\n') if len(i.strip())>0]))
выход:
[['At', 210.001], ['Au', 196.9665], ['B', 10.81], ['Ba', 137.34]]
Если вам действительно нужно иметь одну строку во всех вложенных строках, используйте:
with open('list.txt', 'r') as myfile:
data=myfile.read()
print([[i.strip().replace(' ',',')] for i in data.split(' \\n') if len(i.strip())>0])
выход:
[['At,210.001'], ['Au,196.9665'], ['B,10.81'], ['Ba,137.34']]