名字和数字排序
Topic source想了解一下,为什么t[0]就是字符 而t[1]就是排序数字呀?我打印print(L[1])出现第一个数组 但是是包含字符串和数字的('Bob', 75)
字符串和数字是如何分离开的呢?请教一下各位大神?
sorted函数并不是直接对列表进行映射,而是把列表拆分成元素,然后对元素一个一个映射为新元素,再对新元素排序,然后再把新元素还原成旧元素,就成了按照key规则排序的sorted的输出结果
参数key所对应的映射,调用时使用的参数是每个列表元素而不是整个列表,也就是是列表内的元组(‘名字’,‘数字’)这样t[0]就是名字t[1]就是数字了
L2 = sorted(L, key=by_name)类似于执行了如下代码,这么一比较sorted函数那是相当方便了
L = [('Bob', 75), ('Adam', 92), ('Bart', 66), ('Lisa', 88)]
L2 = []
D = {}
L3 = []
def by_name(t):
return t[0].lower()
for index,i in enumerate(L):
element = by_name(i)
L2.append(element)
D [element] = L[index][1]
L2.sort()
for i in L2:
for key,value in D.items():
if i == key:
i[0].upper()
element = (i[0].upper() + i[1:],value)
L3.append(element)
L3
- 1
alienation
L = [('Bob', 75), ('Adam', 92), ('Bart', 66), ('Lisa', 88)]
def by_name(t):
return t[0].lower()
def by_score(t):
return t[1]
L2 = sorted(L, key=by_name)
print(L2)
L2 = sorted(L, key=by_score)
print(L2)