【问题标题】:Python3 multiply and add in a list.Python3 在列表中相乘和相加。
【发布时间】:2016-10-19 11:05:08
【问题描述】:

被困在锻炼中,可能需要一些帮助!

练习:创建一个接受列表的函数:

[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]

谁能指点我正确的方式?

谢谢。

【问题讨论】:

  • 指向正确的方向:num * 1 没有分配给任何东西。 list1 在没有任何更改的情况下被返回(好的部分是它在迭代时没有被修改,但为什么它会被返回)

标签: list python-3.x add multiplication


【解决方案1】:

您正在修改 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

【讨论】:

  • [155, 125, 123, 69, 4]
【解决方案2】:

不需要乘以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]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多