我正在尝试从文件中获取最长和最短的名称并将其打印出来。如果两个人的名字长度相同并且是最大/最小的我也需要打印出来。
我尝试过的:
try:
marvel_number = 0
with open("Marvel.txt") as numbers_file:
for line in numbers_file:
marvel_number = marvel_number + 1
print(len(marvel_number))
当我运行这段代码时,它给了我这个错误:
TypeError: object of type 'int' has no len()
最佳答案
您可以迭代文件中的所有这些名称,将它们存储在名为 names
的列表中,然后根据每个项目的长度对该列表进行排序。默认情况下,Python 的顺序是升序,因此最短的名称是第一个元素,最长的名称是最后一个元素:
with open('marvel.txt', 'r') as numbers_file:
names = sorted([line.strip() for line in numbers_file], key=len)
print('Shortest name: ' + names[0])
print('Longest name: ' + names[-1])
这将打印:
Shortest name: Thanos
Longest name: Black Widow
关于python - 如何从文件中获取最大和最短的名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59112126/