【发布时间】:2019-04-24 04:10:46
【问题描述】:
我的妻子给我发了杂乱无章的长长的购物清单。我会将她的列表粘贴到一个文本文件中。我想编写一个程序,它将删除她的无序列表并将有序列表写入该文件。前任。所有水果在一起,肉在一起等。显然,该计划还处于起步阶段。在我的文本文件中,我写了:
banana
apple
在这种情况下,当我遍历文本文件的每一行时,我希望 item 被附加到水果中?但事实并非如此。我错过了什么?
fruit = []
vegetables = []
meat = []
dairy = []
fruit_list = ["banana", "apple", "orange"]
def read_list():
with open("/storage/emulated/0/textfiles/grocery.txt", "r") as r:
for item in r:
if item in fruit_list:
fruit.append(item)
print(fruit)
【问题讨论】:
-
剥离项目。最后有一个换行符。
"banana" != "banana\n" -
在比较前尽量去掉空格:item=item.strip()
-
String comparison doesn't seem to work for lines read from a file 的可能副本可能有更好的,但这是我得到的第一个。
-
这样的迭代包括每个
item中的换行符。尝试例如item.strip()或使用r.splitlines()获取所有无换行项目的列表。
标签: python list for-loop conditional