如何创建一个数字列表,并将列表中的奇数替换为比它们大的第一个偶数?
比如说:([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。