【发布时间】:2020-07-20 13:40:44
【问题描述】:
我有一个包含人名的 txt 文件。
我打开它,只想使用过滤器和 lambda 函数获取具有用户输入长度的名称。
问题是我得到的列表是空的[]。
names_file = open('names.txt').read().split()
user_choice = input("Enter name length: ")
print(list(filter(lambda c : len(c) == user_choice, names_file)))
有什么问题?
【问题讨论】:
-
type(user_choice) == str但type(len(c)) == int所以它们永远不相等。 -
input返回一个字符串,所以如果用户输入5,user_choice将是"5"。整数和字符串之间的等价性总是False。 -
names_file 列表中的数据是什么样的?
-
@TadhgMcDonald-Jensen 谢谢,解决了问题!
-
感谢大家的回答!
标签: python python-3.x list lambda filter