Python3 在列表中乘法加法。

Python3 multiply and add in a list.

在练习中遇到困难,可能需要一些帮助!

Exercise: Create a function that takes the list:

[123, 4, 125, 69, 155]

作为参数。该函数应将所有偶数乘以 1,然后 将所有奇数加 6。用排序后的修改列表回答 数字顺序,降序。

到目前为止我的代码是。

list1 = [123, 4, 125, 69, 155]

def multi():
    for num in list1:
        if num % 2 == 0:
            num * 1
        else:
            num + 6
        return list1

在答案中我输入了 `def multi():

我得到的答案是

[123, 4, 125, 69, 155] <class 'list'>

正确答案是[161,131,129,75,4]

谁能给我指出正确的方法?

谢谢。

你修改的是for循环变量num本身而不是原来的列表值 下面的代码应该可以完成工作

list1 = [123, 4, 125, 69, 155]
def multi():
    for i,num in enumerate(list1):
        if num % 2 == 0:
            num *= 1
        else:
            num += 6
        list1[i] = num # modify list value 
    return sorted(list1)[::-1] # this do sorting then reverse from large to small

不需要乘以1,只要检查数字是否为奇数加6即可。

list1 = [123, 4, 125, 69, 155]
def multi():
    for i,num in enumerate(list1):
       if num % 2 != 0:
           num +=6 
       list1[i] = num
    return sorted(list1)[::-1]