Python 根据第二个整数对列表进行排序
我正试图根据第二项对列表进行排序。我已经写出了这段代码,但它没有正确地对它们进行排序Python 根据第二个整数对列表进行排序,python,list,sorting,Python,List,Sorting,我正试图根据第二项对列表进行排序。我已经写出了这段代码,但它没有正确地对它们进行排序 import random d2 = [] for i in range (12): x = random.randint(1,100) y = x x = random.randint(1,100) d2.append([x,y]) 我在这一部分遇到了问题,我需要让它解决。它对前两个列表进行排序,但随后停止工作。我的代码怎么了 def sortlist(A): l
import random
d2 = []
for i in range (12):
x = random.randint(1,100)
y = x
x = random.randint(1,100)
d2.append([x,y])
我在这一部分遇到了问题,我需要让它解决。它对前两个列表进行排序,但随后停止工作。我的代码怎么了
def sortlist(A):
l = len(A)
for i in range(0, l):
for j in range(0, l-i-1):
if (A[j][1] > A[j + 1][1]):
tempo = A[j]
A[j]= A[j + 1]
A[j + 1]= tempo
return A
A = d2
print(sortlist(A))
您可以使用Python的sorted,并将自定义键函数设置为根据列表元素的排序方式进行指定
# sort the list based on each element's second integer (elem[1])
sorted(d2, key=lambda elem: elem[1])
您可以使用Python的sorted,并将自定义键函数设置为根据列表元素的排序方式进行指定
# sort the list based on each element's second integer (elem[1])
sorted(d2, key=lambda elem: elem[1])
您可以输入sort键参数或按该键排序。在本例中,您需要的键是itemgetter1,例如:
import operator
data = [('a', 5), ('b', 4), ('c', 7), ('d', 6)]
data.sort(key=operator.itemgetter(1))
# data is now [('b', 4), ('a', 5), ('d', 6), ('c', 7)]
顺便说一句,operator.itemgetter1执行与lambda x:x[1]相同的操作。您可以使用sort或按该键排序的键参数。在本例中,您需要的键是itemgetter1,例如:
import operator
data = [('a', 5), ('b', 4), ('c', 7), ('d', 6)]
data.sort(key=operator.itemgetter(1))
# data is now [('b', 4), ('a', 5), ('d', 6), ('c', 7)]
顺便说一句,operator.itemgatter1与lambda x:x[1]做的事情是一样的。这就是你想要的东西吗
list1 = [10, 5, 2, 3]
list2 = list(list1)
del list2[0]
list2.sort()
for i in range(0, len(list2)):
list1[i+1] = list2[i]
print(list1)
输出:[10,2,3,5]像这样的东西是你想要的吗
list1 = [10, 5, 2, 3]
list2 = list(list1)
del list2[0]
list2.sort()
for i in range(0, len(list2)):
list1[i+1] = list2[i]
print(list1)
输出:[10、2、3、5]您能否创建一个与第一个列表相等的新列表,但删除第一个项目,然后对其排序并将其与第一个现有项目一起附加到列表中?这是否回答了您的问题@库卡OP并没有询问如何对列表排序,但他们已经实现的算法有什么问题。@Countour Integral先生Quadri搞砸了。你的返回a有错误的缩进-它应该与l=lenA在同一个缩进处。我写的答案要长得多,直到问题结束。你也有不必要的任务-看看你自己能不能找到。你能不能只制作一个与第一个相同的新列表,但删除第一个项目,然后排序并将其与第一个现有项目一起附加到列表中?这是否回答了你的问题@库卡OP并没有询问如何对列表排序,但他们已经实现的算法有什么问题。@Countour Integral先生Quadri搞砸了。你的返回a有错误的缩进-它应该与l=lenA在同一个缩进处。我写的答案要长得多,直到问题结束。你也有不必要的任务——看看你自己能不能找到。