首页 > 解决方案 > 从字符串集合中查找最大长度

问题描述

我正在努力解决另一个问题,但遇到了一个我不确定如何计算长度的步骤。

样本数据:

file_content = [
    '"Track","Artist","Album","Time"',
    '"Computer Love","Kraftwerk","Computer World","7:15"',
    '"Paranoid Android","Radiohead","OK Computer","6:27"'
]

目标:
计算具有最长字符长度的行并返回该值。基本上,从集合中找到字符的总和最大值dict.values()

我尝试使用嵌套推导,但我被困在某个地方。这是我到目前为止所尝试的:

import csv
rows = [r for r in csv.DictReader(file_content)]
max([sum(len(v)) for row in rows for v in row.values()])

标签: python

解决方案


使用熊猫

由于 csv 包含表格结构,我们也可以使用 pandas。

import pandas as pd

可以使用 加载文件df = pd.read_csv(path),它返回以下 DataFrame:

Track                      Artist     Album           Time
Computer  Love             Kraftwerk  Computer World  7:15
Paranoid  Android          Radiohead     OK Computer  6:27

然后我们可以连接行并取组合字符串长度的最大值

df["Concat"] = [''.join(row.astype(str)) for row in df.values]

Track           Artist      Album           Time    Concat
Computer Love   Kraftwerk   Computer World  7:15    Computer LoveKraftwerkComputer World7:15
Paranoid Android    Radiohead   OK Computer 6:27    Paranoid AndroidRadioheadOK Computer6:27

df["Concat"].str.len().max()
#40

推荐阅读