python列表可以存储列表吗_Python列表存储类实例?

你尝试过你的代码吗?它应该工作正常你可以把它压缩成:

scores = [ student.name for student in names if student.gender == "Male" ]

请注意,调用列表名称是误导的,因为它是Student实例的列表.

您不能将列表定义为学生实例的列表;这不是Python的工作原理.

你在问如何创建你叫做名字的列表?

names = [ ]

for ( score, gender ) in :

names.append( Student( score, gender ) )

这当然等于

names = [ Student( score, gender ) for score, gender in ]

反过来

names = [ Student( *row ) for row in ]

如果您需要为每行执行大量处理,那么您可以将处理移至单独的函数或使用for循环.

def process_row( row ):

...

return score, gender

names = [ Student( *process_row( row ) ) for row in ]

响应你的编辑,我想你试图在Python中声明变量的类型.你写了:

for i in range(len(names)):

student = Student()

student = names[i]

if student.gender == "Male":

# Whatever

线学生的目的是什么?学生() – 你是否想要声明变量学生的类型?不要这样做以下将做你想要的:

for student in students:

if student.gender == "Male":

# Whatever

注意几件事情:

>我们不需要迭代范围(n),然后在名称中查找每个实例;迭代容器的每个元素都是for循环的目的.>你不需要对学生有什么要求 – 它可以是一个字符串,一个布尔值,一个列表,一个学生,无论如何.这是动态打字.同样,学生也不一定是一个名单;你可以迭代任何迭代.>当您写student.gender时,Python将获得学生的gender属性,如果没有,则会引发异常.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值