Python 3,* args,在列表中打印输出

时间:2018-04-04 13:45:56

标签: python args

def even_number(*args):
    for even in args:
        if even%2==0:
            even
            print(list(str(even)),end='')

我想将列表中的输出打印为[8,6,4],而是将其打印为[8],[6],[4]。如果我推出最后一个print语句并且只是print(even),它显然没有列出输出。

5 个答案:

答案 0 :(得分:0)

您的问题是每次进入if时都会打印。 相反,您希望每次进入循环时将数字添加到列表中,然后打印它:

def even_number(*args):
     my_list = list()
     for even in args:
        if even%2==0:
            my_list.append(even)
     print(my_list)

编辑: 顺便说一下,其他答案是正确的。最好使用理解列表。我没有删除我的答案,所以你可以理解你的错误。

答案 1 :(得分:0)

def even_number(*args):
  print([i for i in args if i % 2 == 0])

答案 2 :(得分:0)

如果要将结果打印为列表,则需要在打印前收集结果,即:

def even_number(*args):
    evens = [a for a in args if a % 2 == 0]
    print(evens)
# test:
even_number(*range(10))  # [0, 2, 4, 6, 8]

答案 3 :(得分:0)

只需使用列表理解:

def even_number(*args):
    even = [n for n in args if n % 2 == 0]
    print(even)

答案 4 :(得分:0)

简单代码

def even_number(*args):
    result = []
    for even in args:
        if even % 2 == 0:
            result.append(even)
    return result

带有理解列表

def even_number(*args):
    result = [x for x in args if x%2==0]
    return result

用于使用函数even_number

print even_number(range(10))