为什么我的运行结果相反,奇数排在前面,偶数排在后面
时间: 2024-03-28 14:37:03 浏览: 13
这是因为 lambda 表达式中的 `item%2==0` 返回的是 True 或 False,而在 Python 中,True 的值为 1,False 的值为 0。因此,如果你要将偶数排在前面,应该将 lambda 表达式修改为 `lambda item:item%2`,这样返回的就是 0 或 1,0 表示偶数,1 表示奇数,然后进行升序排序即可。如果要将奇数排在前面,只需要将 lambda 表达式修改为 `lambda item:item%2==1` 即可。
相关问题
C语言奇数排在偶数前面的代码
以下是一个简单的 C 语言程序,可以实现奇数排在偶数前面的功能:
```c
#include <stdio.h>
int main() {
int n, i, j, temp;
int a[100];
printf("请输入数组元素个数:");
scanf("%d", &n);
printf("请输入数组元素:");
for (i = 0; i < n; i++) {
scanf("%d", &a[i]);
}
for (i = 0; i < n; i++) {
for (j = i + 1; j < n; j++) {
if (a[i] % 2 == 0 && a[j] % 2 == 1) {
temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
}
printf("奇数排在偶数前面的数组为:\n");
for (i = 0; i < n; i++) {
printf("%d ", a[i]);
}
printf("\n");
return 0;
}
```
此程序中,我们首先输入数组的元素个数和元素值,然后使用双重循环将奇数排在偶数前面,最后输出排好序的数组。需要注意的是,此程序只是一个简单的示例,实际应用时需要根据具体需求进行修改。
js单链表奇数排在偶数前
可以使用双指针法来实现将单链表中的奇数排在偶数前面。具体实现过程如下:
1. 定义两个指针:一个指向奇数节点的链表头部,一个指向偶数节点的链表头部。
2. 遍历链表,将奇数节点插入到奇数链表的末尾,偶数节点插入到偶数链表的末尾。
3. 将奇数链表的尾节点指向偶数链表的头节点,即将两个链表合并。
4. 返回新的链表头节点,即为奇数排在偶数前的单链表。
以下是 JavaScript 代码实现:
```javascript
function oddEvenList(head) {
if (!head || !head.next) return head; // 如果链表为空或只有一个节点,则直接返回原链表
let odd = head; // 奇数链表头部
let even = head.next; // 偶数链表头部
let evenHead = even; // 保存偶数链表头部,用于合并链表
while (even && even.next) {
odd.next = even.next; // 将偶数链表的下一个节点插入到奇数链表的末尾
odd = odd.next; // 奇数链表指针向后移动
even.next = odd.next; // 将奇数链表的下一个节点插入到偶数链表的末尾
even = even.next; // 偶数链表指针向后移动
}
odd.next = evenHead; // 将奇数链表的尾节点指向偶数链表的头节点,合并链表
return head; // 返回新的链表头部
}
```