Discuss / Python / 练习

练习

Topic source

1.

def by_name(t): return t[0].lower()

2.

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

理解不了返回的t[0]为什么不是第一个tuple

排序算法作用在每一个tuple上,这里的t[0]是指每一个tuple的t[0]

我也理解不了,关于t[0]为什么不是第一个tuple,那如果我想取第一个tuple如何操作

因为L这个列表放到sorted里面排序,其实是把里面的元素都拆分开,然后执行key指定的函数,所以每1个tuple都作为参数放到函数里执行了,t[0]就是指tuple的第一个元素,by_name这个函数就是把每个tuple的名字单独弄出来进行排序,排序完再根据对应关系映射到原来的tuple

明白啦,谢谢小伙伴

sao

半块木

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

是否可以理解成:

  1. sorted会将列表中的元素分别给到key,让key处理(这里是取出元组tuple中的第一个元素);
  2. 然后在讲key处理完的列表进行排序
  3. 最后将排列完的元素与原列表中的元素映射,调整原列表中的顺序

TomMiller

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

def by_name(t): return t[0]

def by_score(t): return t[1]

TomMiller

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

说错了 t本身就是上边大tuple的其中一个小tuple,t[0]或者t[1]直接就是单个名字和分数,


  • 1
  • 2

Reply