如何创建一个数字列表,并将列表中的奇数替换为比它们大的第一个偶数?

2 投票
4 回答
686 浏览
提问于 2025-04-18 09:22

比如说:([3,85,44,71,9,5]) 这个输入会返回 ([4,86,44,72,10,6])

用户会输入这些信息,那我是不是需要先创建一个空列表呢?

非常感谢大家的帮助!

谢谢!

4 个回答

0

使用 modulo

arr = [3,85,44,71,9,5]
arr = [item + item%2 for item in arr]

这段代码的运行结果是:

>>> arr = [3,85,44,71,9,5]
>>> arr = [item + item%2 for item in arr]
>>> arr
[4, 86, 44, 72, 10, 6]
>>> 

% 的作用是这样的:

>>> 9%2 #Gives 1, because 9/2 is 4 remainder 1
1
>>> 10%2 #Gives 0, because 10/2 is 5 remainder 0
0
>>> 
0

这段内容是关于编程问题的讨论,主要涉及到一些技术细节和解决方案。虽然具体的问题没有被提到,但可以想象这是一个程序员在寻求帮助的场景。大家在这里分享自己的经验和看法,试图找到最佳的解决办法。

在编程的世界里,遇到问题是很常见的。很多时候,程序员会在网上发帖,询问其他人的意见和建议。通过这样的讨论,大家可以互相学习,找到更好的方法来解决问题。

总之,这段内容展示了编程社区的合作精神,大家都在努力帮助彼此,提升自己的技能。

list = []
num = 0
while (num != -1):
   num = input("Enter number; enter -1 to end: ")
   if (num != -1):
      list.append(num+1)
2

使用lambda表达式和三元运算符:

list1 = [3,85,44,71,9,5]
map(lambda x: x if x%2==0 else x+1, list1) 
[4, 86, 44, 72, 10, 6]

附注:相关讨论:Python 列表推导与 Map

3
list1 = [3,85,44,71,9,5]
list2 = [x + (x%2) for x in list1]

注意到对于奇数,x%2的结果是1,而对于偶数,结果是0。

撰写回答