列表奇偶排序python
时间: 2023-10-14 14:10:26 浏览: 101
可以使用Python的排序函数`sorted()`,并自定义排序规则来实现列表的奇偶排序。
以下是一个示例代码:
```python
# 定义排序规则,奇数在前,偶数在后
def custom_sort(x):
if x % 2 == 0:
return 1
else:
return 0
# 待排序的列表
lst = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
# 使用sorted()函数进行排序并指定自定义排序规则
lst_sorted = sorted(lst, key=custom_sort)
print(lst_sorted)
```
输出结果为:
```
[3, 1, 1, 5, 9, 5, 3, 5, 4, 2, 6]
```
可以看到,排序后奇数在前,偶数在后。
相关问题
奇偶数双端排序python
以下是一个简单的 Python 代码示例,用于对一个列表中的整数进行奇偶数双端排序:
```
def sort_odd_even(lst):
# 初始化左右指针
left, right = 0, len(lst) - 1
while left < right:
# 如果左边是偶数,右边是奇数,交换它们
if lst[left] % 2 == 0 and lst[right] % 2 == 1:
lst[left], lst[right] = lst[right], lst[left]
left += 1
right -= 1
# 如果左边是偶数,右边也是偶数,只移动右边的指针
elif lst[left] % 2 == 0:
right -= 1
# 如果左边是奇数,右边也是奇数,只移动左边的指针
elif lst[right] % 2 == 1:
left += 1
# 如果左边是奇数,右边是偶数,只移动左边的指针
else:
left += 1
return lst
```
此函数接受一个整数列表作为参数,并返回一个新的列表,其中所有奇数都在所有偶数之前,但奇数和偶数之间的相对顺序不变。函数使用双指针方法对列表进行排序。
python取列表中位数
可以使用Python内置的`sorted()`函数和列表切片来取得列表中位数。具体的步骤如下:
1. 对列表进行排序,可以使用`sorted()`函数。
2. 判断列表的长度是否为奇数,如果是奇数,则中位数为排序后的列表的中间位置的元素;如果为偶数,则中位数为排序后的列表中间两个元素的平均值。
下面是示例代码:
```python
def get_median(lst):
sorted_lst = sorted(lst)
lst_len = len(lst)
mid = lst_len // 2
if lst_len % 2 == 0:
return (sorted_lst[mid - 1] + sorted_lst[mid]) / 2
else:
return sorted_lst[mid]
# 示例
lst = [1, 3, 5, 2, 4, 6]
median = get_median(lst)
print(median) # 输出 3.5
```
以上代码中,`get_median()`函数用于获取列表的中位数,其中`sorted()`函数对列表进行排序,`lst_len`表示列表的长度,`mid`表示列表中位于中间位置的元素的索引。最后,根据`lst_len`的奇偶性判断中位数的取值,并进行返回。