class XYZ:
def __init__(self, name, score):
self.name = name
self.score = score
l = [] # l is the list of objects
l.append(XYZ('Anmol', 10))
l.append(XYZ('Andrew', 200))
l.append(XYZ('Johnson', 3000))
在上面的代码中,l 是包含三个对象的对象列表,每个对象都有一个名称(字符串)和一个分数(整数),那么我如何找出该列表中名称的最大长度是多少?对象
在我们的程序中,name 的最大长度是 Johnson 的名字,它的长度是 7。所以程序应该输出 7。怎么做?
最佳答案
与 list comprehension
,如果没有 lambda
,它看起来像这样:
result = max(len(x) for x in l)
本质上,这会执行以下操作(它有助于从右到左分解列表理解):
in l
:遍历l
for x
:在迭代过程中将l
的每个元素赋值给变量x
len(x)
:获取列表l
中每个变量list comprehensions
将输出自然地转换为列表格式,因此此时我们有一个包含所有字符串长度的列表,如:[5, 6, 7]
max(...)
:简单地从长度列表中获取最大数
x
的长度
希望这个解释有助于理解发生了什么。
关于python - 如何在对象列表中查找字符串的最大长度(Python),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49132937/