python中两个list该如何排序
发布网友
发布时间:2022-04-07 11:34
我来回答
共3个回答
热心网友
时间:2022-04-07 13:04
这个其实很简单,先给你提供下思路,别使用自带 sort() 排序。自己写个排序算法,根据list1分数排序,在排序的过程中同时将list2姓名根据list1的排序算法走一遍,即可得到对等的序列。
#-*- coding:utf-8 -*-
name = ['a', 'b', 'c', 'd', 'e', 'f']
score = [96, 97, 92, 93, 99, 91]
def insert_sort2(num_list, name):
"""
插入排序, 稍微修改之后
"""
for i in range(len(num_list)-1):
for j in range(i+1, len(num_list)):
if num_list[i]>num_list[j]:
num_list[i],num_list[j] = num_list[j],num_list[i]
name[i],name[j] = name[j],name[i]
return num_list,name
print insert_sort2(score, name)
def insert_sort(num_list):
"""
插入排序,正常的
"""
for i in range(len(num_list)-1):
for j in range(i+1, len(num_list)):
if num_list[i]>num_list[j]:
num_list[i],num_list[j] = num_list[j],num_list[i]
return num_list
# 输出: ([91, 92, 93, 96, 97, 99], ['f', 'c', 'd', 'a', 'b', 'e'])
# 使用 list1,list2 = insert_sort(list1, list2) 这样就可以得到了
热心网友
时间:2022-04-07 14:22
data=[(score, name) for score, name in zip(list1,list2)] #先转化成元组
data.sort() #按照分数排序
list1=[score for score,name in data] #将排好序的分数姓名的元组分开
list2=[name for score,name in data]
这么简单,不需要楼上写的那么复杂
热心网友
时间:2022-04-07 15:56
#似乎可以更简单
list1 = [1, 2, 3, 4, 5, 6]
list2 = ['a', 'b', 'c', 'd', 'e', 'f']
c = list(zip(list1,list2))
c.sort(reverse = True) #降序
list1[:],list2[:] = zip(*c)
print(list1,list2)
#当然如果使用MongoDB的话,可以直接进行排序
pythonlist怎么排序
`sort`方法是Python列表的一个内置方法,可以直接对列表进行排序。它会改变原来的列表,使其按照特定的顺序排列。默认情况下,`sort`方法按照升序排列列表中的元素。示例:python lst = [3, 1, 4, 1, 5, 9, 2]lst.sort print # 输出:[1, 1, 2, 3, 4, 5, 9]二、使用sorted函数进行...
python语句中合并两个列表并且将列表中的数安大小排列
假设原来的两个list是L1,L2.1,合并:L = L1+L2 2,排序sorted(L) 默认从小到大排列,如果要从大到小排列就是sorted(L,reverse=True)合起来就是 L=sorted(L1+L2, reverse=True)
如何对list排序
sort方法还可以接受一个可选参数reverse,设置为True时进行降序排序。示例代码:python lst = [3, 1, 4, 1, 5, 9, 2, 6]lst.sort print # 输出:[9, 6, 5, 4, 3, 2, 1, 1]二、使用sorted函数 sorted函数也会返回一个排序后的列表,但它不会改变原列表,新列表是原列表的副本。同...
python怎么对数组排序?python数组排序方法
首先,Python内置了list对象的.sort()方法,它会直接对列表进行就地排序,不返回任何值,适用于对列表进行原地操作。例如:list_name.sort()另一种是sorted()函数,它接受任意可迭代对象并返回一个新的排序后的列表,不同于.sort(),sorted()会返回一个新的排序后的序列,不会改变原对象:sorted_list ...
python要如何实现(列表)排序?
Python的list包含内置排序功能,主要有两种方法:sorted()与list.sort()。使用sorted()函数,可对list进行排序,返回一个新列表,按元素从小到大排列。而list.sort()方法则直接在原列表中排序,改变原列表顺序,也是从小到大。在sorted()与list.sort()中,可通过指定参数实现自定义排序。如可调用reverse...
python如何遍历2个list
找两个list元素少的,index遍历完所有的,遍历完后,把此时的index记住。然后直接循环那个较长list的剩余部分。代码可以参考下面的 list1 = [1,2,3,4,5,6,7]list2 = ['a','b','c','d']min_length = len(list1) if len(list1)<len(list2) else len(list2)max_length = len(list...
用python处理两个列表 list1=[1,2,3,4] list2=[a,b,c,d] 变成list3 =...
>>> l1 = [1, 2, 3, 4]>>> l2 = ['a', 'b', 'c', 'd']>>> [[x, y] for i, x in enumerate(l1) for y in l2[i]][[1, 'a'], [2, 'b'], [3, 'c'], [4, 'd']]>>> 这种 必须 len(l1) == len(l2)...
python常见的三种列表排序算法分别是什么?
在Python中,Python算法有:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。冒泡排序冒泡排序也是一种简单直观的排序算法。③对所有两个小数列重复第二步,直至各区间只有一个数。排序演示算法实现希尔排序介绍希尔排序(ShellSort)是插入排序的一种,也是缩小增量排序,是...
在python中如何将两个list合并成一个list,不用for语句
new_list = list1 + list2 解释如下:列表相加操作 Python中的列表是可变序列类型,支持序列拼接操作。通过将两个列表放在加号两侧,可以直接将它们相加,从而得到一个新的列表。这是Python语言内置的功能,非常直观且易于使用。示例说明 假设我们有以下两个列表:python list1 = [1, 2, 3]list2 = ...
如何排列组合合并Python里两个list的元素
排列组合合并Python里两个list的元素 import itertools a,b=[1,2,3],[4,5,6] print(list(itertools.product(a,b)))