如何在python 让列表 按另一列表当索引值 进行排序
时间: 2024-04-08 07:33:17 浏览: 37
在 Python 中,你可以使用 `zip` 函数将两个列表打包成一个元组列表,然后使用 `sorted` 函数和自定义的比较函数来按照另一个列表的索引值进行排序。以下是一个示例代码:
```python
def sort_by_index(list1, list2):
zipped = zip(list2, list1) # 将两个列表打包成元组列表
sorted_list = sorted(zipped, key=lambda x: x[0]) # 按照第一个元素(list2中的值)进行排序
result = [x[1] for x in sorted_list] # 提取排序后的列表中的第二个元素(list1中的值)
return result
# 示例数据
list1 = ['a', 'b', 'c', 'd']
list2 = [2, 0, 3, 1]
# 调用函数进行排序
sorted_list = sort_by_index(list1, list2)
print(sorted_list)
```
运行以上代码,输出结果为:`['b', 'd', 'a', 'c']`。在这个例子中,`list2` 的值 `[2, 0, 3, 1]` 指定了 `list1` 的索引顺序,所以按照 `list2` 中的值对 `list1` 进行了排序。你可以根据自己的需求调整这段代码,适应不同的列表和排序方式。
相关问题
python实现对列表进行排序并返回排序后的索引值
可以使用 `sorted()` 函数结合 `enumerate()` 函数实现对列表进行排序并返回排序后的索引值。具体实现如下:
```python
lst = [4, 2, 3, 1]
sorted_index = [i for i, _ in sorted(enumerate(lst), key=lambda x: x[1])]
```
其中,`enumerate()` 函数可以同时返回列表的索引值和对应的元素值,然后通过 `sorted()` 函数指定按照元素值排序,得到排序后的元素值和对应的索引值。最后通过列表推导式将得到的排序后的索引值存储到 `sorted_index` 列表中。
Python一个列表跟着另一个列表排序
你可以使用zip函数将两个列表合并为一个元组的列表,然后使用sorted函数按照元组的某个元素进行排序。例如,假设有两个列表a和b,你想按照列表a的顺序对列表b进行排序,可以按照以下方式操作:
```python
a = [3, 1, 2]
b = ['c', 'a', 'b']
combined = list(zip(a, b)) # 合并为元组的列表
combined_sorted = sorted(combined) # 按照a的顺序排序
# 获取排序后的b列表
sorted_b = [item[1] for item in combined_sorted]
print(sorted_b) # 输出: ['a', 'b', 'c']
```
在这个例子中,a列表是[3, 1, 2],b列表是['c', 'a', 'b']。我们首先使用zip函数将a和b合并为[(3, 'c'), (1, 'a'), (2, 'b')]的元组列表。然后,我们使用sorted函数对合并后的列表进行排序,得到[(1, 'a'), (2, 'b'), (3, 'c')]。最后,我们通过列表推导式获取排序后的b列表,即['a', 'b', 'c']。
相关推荐
![py](https://img-home.csdnimg.cn/images/20210720083646.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)