例如:([3,85,44,71,9,5])
会返回([4,86,44,72,10,6])
用户输入信息,所以我必须创建一个空列表吗?
很多人会很感激
谢谢!
答案 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
>>>