按index 排序 python
时间: 2023-06-01 13:07:08 浏览: 51
好的,我可以回答这个问题。你可以使用 Python 中的内置函数 `sorted()` 对列表中的元素按照索引进行排序。例如:
```
my_list = ['a', 'c', 'b', 'd']
sorted_list = sorted(my_list, key=lambda x: my_list.index(x))
print(sorted_list)
```
输出结果为:
```
['a', 'b', 'c', 'd']
```
相关问题
python index排序乱重新排序
如果你想对一个列表进行重新排序,可以使用 `sort()` 方法或者 `sorted()` 函数对列表进行排序,例如:
```python
my_list = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
my_list.sort() # 直接对原列表进行排序
print(my_list) # 输出 [1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]
new_list = sorted(my_list) # 使用 sorted() 函数创建一个新的排序后的列表
print(new_list) # 输出 [1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]
```
如果你想要按照某个关键字进行排序,可以使用 `sort()` 方法和 `sorted()` 函数的 `key` 参数来指定排序规则,例如:
```python
my_list = ['apple', 'banana', 'cherry', 'date', 'elderberry', 'fig']
my_list.sort(key=lambda x: len(x)) # 按照字符串长度进行排序
print(my_list) # 输出 ['fig', 'date', 'apple', 'banana', 'cherry', 'elderberry']
new_list = sorted(my_list, key=str.lower) # 按照字符串小写形式进行排序
print(new_list) # 输出 ['apple', 'banana', 'cherry', 'date', 'elderberry', 'fig']
```
如果你想要对字典按照值进行排序,可以使用 `sorted()` 函数的 `key` 参数和 `items()` 方法来实现,例如:
```python
my_dict = {'apple': 5, 'banana': 3, 'cherry': 9, 'date': 2, 'elderberry': 7, 'fig': 1}
sorted_dict = sorted(my_dict.items(), key=lambda x: x[1]) # 按照字典值进行排序
print(sorted_dict) # 输出 [('fig', 1), ('date', 2), ('banana', 3), ('apple', 5), ('elderberry', 7), ('cherry', 9)]
```
注意,在以上三个例子中,`sort()` 方法会直接对原列表进行修改,而 `sorted()` 函数会返回一个新的排序后的列表或字典。
选择排序Python
选择排序是一种简单且直观的排序算法,它的主要思想是每次从未排序的部分中选择最小的元素,并将其放在已排序部分的末尾。通过多次迭代,将所有的元素都按照从小到大的顺序排列。
以下是Python实现选择排序的代码:
```python
def selection_sort(array):
for i in range(len(array)-1):
min_index = i
for j in range(i+1, len(array)):
if array[j] < array[min_index]:
min_index = j
if min_index != i:
array[i], array[min_index] = array[min_index], array[i]
return array
if __name__ == '__main__':
array = [10, 17, 50, 7, 30, 24, 27, 45, 15, 5, 36, 21]
print(selection_sort(array))
```
选择排序的时间复杂度为O(n^2),其中n是待排序的元素个数。每一轮排序需要进行n-i次比较,共进行n-1轮排序。
选择排序的一个特点是不管待排序列表的初始状态如何,都不会影响排序的时间复杂度。但由于每次只是交换相邻元素,所以选择排序是一种不稳定的排序算法。