为列表中的奇数添加1

2024-04-28 23:25:00 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我的代码:

numbers = []#1
for i in range(10):
  i += 1
  numbers.append(i)
print (numbers)

numbers2 = [n + 2 for n in numbers]#2
print (numbers2)

numbers3 = []#3
for x in numbers2:
  if (x % 2 == 1) :
    x += 1
    numbers3 = x
    print (numbers3)

我正在使用GoogleColab并在3个单独的代码单元(标签号注释)上运行这些代码。#1程序输出为[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]。#2的输出是[3, 4, 5, 6, 7, 8, 9, 10, 11, 12]。所以在#3单元,我希望程序在numbers2列表中的每个奇数上加1。我想要的输出是 [4, 4, 6, 6, 8, 8, 10, 10, 12, 12]。但我得到的是:

4
6
8
10
12

另外,我尝试不使用函数(仅针对这些代码)。我打算在#1代码上进行for循环

附加问题:是否可以修改列表中的元素而不将结果append更改为另一个列表(如#2代码)?就像在列表中的每个数字上加2一样


Tags: 代码in程序列表forifrange标签
3条回答

为了填充列表而不是仅仅打印值,必须使用append函数,而不是=

numbers3 = x
#becomes
numbers3.append(x)

要获得所需格式的列表,还必须从if语句中删除append,从for循环中删除print,如下所示:

numbers3 = []#3
for x in numbers2:
    if (x % 2 == 1) :
        x += 1
    numbers3.append(x) # Here
print (numbers3) # and here

您的第三个单元格应该是这样的,您已经接近解决方案,您所需要做的就是在numbers3列表中添加x

numbers3 = []#3
for x in numbers2:
  if (x % 2 == 1) :
    x += 1
  numbers3.append(x)
print(numbers3)

请尝试以下操作:

second_list = [3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
third_list = second_list
for i in range(len(second_list)):
  if (second_list[i] % 2 == 1):
    make_even = second_list[i] + 1
    third_list[i] = make_even
  else:
    third_list[i] = second_list[i]
print (third_list)

对于正在进行的GoogleColab项目,您必须对其进行调整,但这里的逻辑应该是正确的。现在这个答案在常规的Python3中有效

相关问题 更多 >