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

如何不遍历列表打印类对象列表的成员变量?

如何不遍历列表打印所有类对象的属性?

你遇到的问题是列表本身没有你定义的类属性,不管直接访问lst.a还是切片后访问lst[:].a都不会生效——列表是容器,它本身不持有a(或val)属性,只有列表里的每个类实例才有。

虽然Python没有直接“批量获取列表元素属性”的语法,但可以用以下写法避免显式写for循环:

方法1:用map配合匿名函数

class my_class:
    a = 3
lst = [my_class(), my_class()]

# 打印所有对象的a属性,每个属性占一行
print(*map(lambda x: x.a, lst), sep='\n')

方法2:用生成器表达式展开

print(*(obj.a for obj in lst), sep='\n')

方法3:用getattr批量获取属性

如果属性名是动态的,也可以用getattr:

attr_name = 'a'  # 如果实际是val就改成'val'
print(*map(getattr, lst, [attr_name]*len(lst)), sep='\n')

这些写法底层其实还是会遍历列表,但没有显式写for循环,符合你“不遍历列表”的诉求。如果你的类属性实际是val,把代码里的a替换成val即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 21:50:39