您可以通过.split() 方法使用序列解包,然后将每个值添加到其单独的列表中。请注意,反斜杠用于转义特殊序列,因此您必须使用反斜杠转义反斜杠并改为在 '\\' 上拆分。
>>> line = 'apple\red\3 months'
>>> line = line.split('\\')
>>> line
['apple', 'red', '3 months']
>>> fruit, colour, expire = line
>>> print(fruit, colour, expire)
apple red 3 months
从文件中读取时,您还必须.strip() 每行,因为它们末尾有换行符。解决方案:
data = {'fruits': [], 'colours': [], 'expires': []}
with open('file.txt') as f:
for line in f:
fruit, colour, expire = line.strip().split('\\')
data['fruits'].append(fruit)
data['colours'].append(colour)
data['expires'].append(expire)
可扩展版本:
columns = ['fruits', 'colours', 'expires']
data = {c: [] for c in columns}
with open('file.txt') as f:
for line in f:
line = line.strip().split('\\')
for i, c in enumerate(columns):
data[c].append(line[i])
未经测试的单线:
with open('file.txt') as f: data = {c: d for c, *d in zip(*(['fruits', 'colours', 'expires']+[line.strip().split('\\') for line in f]))}