python - 如何从文件中获取最大和最短的名称?

标签 python python-3.x pycharm

我正在尝试从文件中获取最长和最短的名称并将其打印出来。如果两个人的名字长度相同并且是最大/最小的我也需要打印出来。

我尝试过的:

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()

这是我正在尝试读取的 Marvel.txt 文件 This is the Marvel.txt file which I am trying to read from

最佳答案

您可以迭代文件中的所有这些名称,将它们存储在名为 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/

相关文章:

debugging - Pycharm - 代码单元 - 使用断点

python - Pandas to_sql() 更新数据库中的唯一值?

python - 如何包装 xmlrpc 函数调用?

python - CsvItemExporter 的 Scrapy 自定义 CSV header

python - 如何仅用 Pandas 数据框中的另一个数字替换单个数字?

python - 如何使用 Pycharm Community 运行功能文件

python - 你如何从pycharm运行nosetest?

python - 读取列表中包含多行的文件时的变量 - python 或 shell

python - 如何在 Python 中将字符串转换为 "command"?

带有 entry_point 控制台脚本的 Python 包分发