Discuss / Python / 大多数人第二个都不对

大多数人第二个都不对

Topic source

极客归来

#1 Created at ... [Delete] [Delete and Lock User]

L = [('Bob', 75), ('Adam', 92), ('Bart', 66), ('Lisa', 88)]

def by_name(t):
    return t[0]

def by_score(t):
    return t[1] * -1

L2 = sorted(L, key=by_name)

L3 = sorted(L, key=by_score)

大多数人第二题都写错了

slysian

#2 Created at ... [Delete] [Delete and Lock User]

我会在sort里面直接加reverse = True, 不过你这样也挺方便

轩轩FPI

#3 Created at ... [Delete] [Delete and Lock User]

你们的想法太厉害了。

翁岚敏

#4 Created at ... [Delete] [Delete and Lock User]

这个倒是很吊

楚云

#5 Created at ... [Delete] [Delete and Lock User]

强人!这应该是最简洁的实现了! 但t[0]/t[1]不是应该返回前面两个元素吗?怎么会这样?搞不懂啊

wongdir

#6 Created at ... [Delete] [Delete and Lock User]

@楚云 L9 = ('Bob',75) print(L9[0]) '''Bob''' print(L9[1]) '''75'''

L10 = [('Bob',75),'b','c'] print(L10[0]) '''('Bob',75) 相当于L9'''

'''key:指定一个接收一个参数的函数,这个函数用于从每个元素中提取一个用于比较的关键字。'''

'''key = by_name(L10[0]) 相当于L9[0] = Bob 以名字作为排序规则的元素 sorted(L, key=by_name) 相当于以L中的名字也就是L[0][0] Bob(例) 为L的每个单元数据排序'''

初学中......


  • 1

Reply