python获取列表值的较短代码

2024-09-30 10:27:35 发布

您现在位置:Python中文网/ 问答频道 /正文

year=[1,2,3,5,4,5,5] 
name=["alex","tom","amy","mary","peter","david","tim"]
maxyear=([i for i, x in enumerate(year) if x == max(year)])

我希望下面的代码更短,只想写一行,就像我定义了maxyear列表一样。你知道吗

oldername=[]
for i in maxyear:
 oldername.append(name[i])

Tags: nameinforifyearpeterdavidtim
1条回答
网友
1楼 · 发布于 2024-09-30 10:27:35

要将代码放在一行上,只需执行以下操作:

oldername = [name[i] for i in maxyear]

正确的语法应该是(带空格!)地址:

year = [1, 2, 3, 5, 4, 5, 5] 
name = ["alex", "tom", "amy", "mary", "peter", "david", "tim"]
maxyear = ([i for i, x in enumerate(year) if x == max(year)])

oldername = [name[i] for i in maxyear]

出于良好实践的考虑,从“For语句”中去掉“max(year)”并将其存储为变量可能是值得的。这样可以节省每次执行最大值计算的时间。你知道吗

相关问题 更多 >

    热门问题