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))
Run Code Online (Sandbox Code Playgroud)
在上面的代码中,l是包含三个对象的对象列表,每个对象都有一个名称(字符串)和一个分数(整数),那么我如何找出该对象列表中名称的最大长度是多少
在我们的程序中,名字的最大长度是Johnson的名字,它的长度是7。所以程序应该输出7。怎么做呢?
使用list comprehension和不使用 时lambda,它看起来像这样:
result = max(len(x) for x in l)
Run Code Online (Sandbox Code Playgroud)
本质上,这会执行以下操作(它有助于从右到左分解列表推导式):
in l: 迭代l for x:在迭代期间将 的每个元素分配l给变量xlen(x)x:获取列表中每个变量的长度llist comprehensions将输出自然地放入列表格式,因此此时我们有一个所有字符串长度的列表,例如:
[5, 6, 7]
Run Code Online (Sandbox Code Playgroud)max(...):简单地从长度列表中获取最大的数字
希望这个解释有助于理解正在发生的事情。
| 归档时间: |
|
| 查看次数: |
4837 次 |
| 最近记录: |