什么是笔划“key=len”?

2024-04-23 23:47:43 发布

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

请告诉我什么是string'sorted(args,key=len)[0]?在

names = ['Bruce', 'Clark', 'Peter'] 
heroes = ['Batman', 'Superman', 'Spiderman']

def shortest_seq(*args):
     return range(len(sorted(args, key=len)[0]))

g = ((names[i], heroes[i]) for i in shortest_seq(names, heroes))
for item in g:
    print(item)

Tags: keyinforstringlennamesargsitem
1条回答
网友
1楼 · 发布于 2024-04-23 23:47:43

sorted函数接受一个可选参数key,它是用来测量列表元素大小的函数。因此,在您的例子中,您是根据列表的长度对一组列表进行排序。在

示例:

L1 = [1, 2, 3, 4]
L2 = sorted(L1, key=lambda x: -x)  # [4, 3, 2, 1]
L3 = sorted(L1, key=lambda x: x % 2)  # [2, 4, 1, 3]

因此,函数

^{pr2}$

获取任意数量的iterable并返回一个从0到n-1的列表(不是真正的range对象,但足够接近),其中n是提供给函数的最短iterable的长度。在

代码

g = ((names[i], heroes[i]) for i in shortest_seq(names, heroes))
for item in g:
    print(item)

将与

for item in zip(names, heroes)
    print item

相关问题 更多 >