笔画“ key = len”是什么意思?

时间:2018-07-29 11:17:55

标签: python

请告诉我字符串'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)

1 个答案:

答案 0 :(得分:0)

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]

因此,功能

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

采用任意数量的可迭代对象,并返回一个列表(不是一个真正的范围对象,但足够接近),该列表的数字从0到n-1,其中n是提供给该函数的最短可迭代对象的长度。

代码

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