You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python从CSV文件full_name列提取最长姓名时仅返回部分内容的问题

问题原因

你当前代码里的max()函数默认是按字符串的字典序(字母顺序)进行比较的,不是按字符串长度。所以返回的是字典序最大的条目,而非你想要的最长姓名。

修正方案

给max()函数加上key=len参数,指定按字符串长度来判断最大值,同时推荐用with语句自动管理文件(避免手动关闭的疏漏):

import csv

file = "personal_data.csv"

with open(file, 'r', newline='') as f:
    reader = csv.reader(f, delimiter=",")
    header = next(reader)
    col_index = header.index('full_name')
    # 通过key=len指定按姓名长度取最大值
    longest_name = max((rec[col_index] for rec in reader), key=len)
    print(longest_name)
补充说明
  • with语句会在代码块执行完毕后自动关闭文件,比手动调用f.close()更可靠
  • 如果你的CSV文件结构复杂,也可以用csv.DictReader直接通过列名获取值,代码可读性更强:
import csv

file = "personal_data.csv"

with open(file, 'r', newline='') as f:
    reader = csv.DictReader(f, delimiter=",")
    longest_name = max((row['full_name'] for row in reader), key=len)
    print(longest_name)
  • 确认你的CSV文件中full_name列的全名是完整存储的(比如"Rachel Smith"没有被拆分到其他列),如果存在列拆分问题,需要先检查文件格式。

内容的提问来源于stack exchange,提问作者Emppy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 10:05:36