myplant = dict((i[0], i[1:3]) for i in (line.strip().split('\\n') for line in f if line != '\n') if i)
print(myplant)
输出:
{'banana ': [' delicious ', ' yellow '],
'watermelon ': [' big ', ' red '],
'orange ': [' juicy ', ' vitamin c ']}
我们可以获取到换行符\n 之前的所有值,并将其存储在一个临时列表中。然后将其存储到数据列表中。
temporary = []
for line in f:
if line.strip().split('\\n')[0]:
if len(line.strip().split('\\n')) > 2:
temporary = list(i.strip() for i in line.strip().split('\\n') if i.strip())
else:
temporary.append(line.strip().split('\\n')[0])
elif temporary:
data.append(temporary)
temporary = []
结果将是:
[['banana', 'delicious', 'yellow'],
['watermelon', 'big', 'red'],
['orange', 'juicy', 'vitamin c']]
现在对于每个列表,第一项将是键,其余的是值。
myplant = dict((val[0], val[1:]) for val in data)
输出:
{'banana': ['delicious', 'yellow'],
'watermelon': ['big', 'red'],
'orange': ['juicy', 'vitamin c']}
从文本文件中读取时应使用r
f = open("filepath", 'r')
返回字典项时使用键、值元组。
k = line.strip().split('\\n')
您可以使用k.remove("") 删除空字符串。
{'banana ': [' delicious ', ' yellow '],
'watermelon ': [' big ', ' red '],
'orange ': [' juicy ', ' vitamin c ']}
f = open("filepath", 'r')
myplant = {}
for line in f:
k = line.strip().split('\\n')
# while "" in k:
# k.remove("")
k = [i for i in k if i]
if k:
myplant[k[0]] = k[1:]
print(myplant)
f.close()