如何创建数字列表,然后用比它们高的第一个偶数数替换列表中的奇数?

时间:2014-06-11 03:17:54

标签: python replace numbers python-idle

例如:([3,85,44,71,9,5])会返回([4,86,44,72,10,6])

用户输入信息,所以我必须创建一个空列表吗?

很多人会很感激

谢谢!

4 个答案:

答案 0 :(得分:3)

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

注意x%2对于奇数是1而对偶数是0。

答案 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]

P.S。相关讨论:Python List Comprehension Vs. Map

答案 2 :(得分:0)

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

答案 3 :(得分: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
>>>