【发布时间】:2020-11-12 03:33:55
【问题描述】:
我正在学习 Python 课程,但我不知道带回家的测验。我正在使用 IDLE 编写代码。
我们必须将名为 names.txt 的文件加载到列表中。该文件包含以下内容:
Joe Smith
000000
Jeff Mitchell
xxxxxxx
Benjamin Grant
12346
我需要过滤掉包含“xxxxxxx”或数字的行。我正在尝试将列表理解与以下代码一起使用:
> names = open(r'C:\Users\eesqu\Documents\Python\names1.txt','r')
> names_contents = names.read()
> filtered_names = [n for n in names_contents if n !='xxxxxxx']
> names.close()
> print(filtered_names)
但是,当我打印过滤后的名称输出时,名称并没有被过滤,而是以下拉格式显示,它们看起来像这样:
['J', 'o', 'e', '', 'S', 'm', 'i', 't', 'h', '\n', '0', '0 '、'0'、'0'、'0'、'0'、'\n'、'J'、'e'、'f'、'f'、''、'M'、'i'、 't'、'c'、'h'、'e'、'l'、'l'、'\n'、'x'、'x'、'x'、'x'、'x'、' x','x','\n','B','e','n','j','a','m','i','n','','G' , 'r', 'a', 'n', 't', '\n', '1', '2', '3', '4', '6', '\n']
我在这里做错了什么?是否可以同时过滤掉“xxxxxxx”和数字?
感谢您在我开始编写代码时的支持。
【问题讨论】:
-
您需要打开文件并逐行读取。 pythonforbeginners.com/files/…
-
@Erick Esquivel 如果以下答案之一满足您的问题,请接受它,这样这个问题就可以结束了
标签: python python-3.x list list-comprehension