如何将我的代码转换为列表表达式

时间:2019-12-30 20:56:12

标签: python list

我的代码:

line = input().split(';')
for i in range(len(line)):
    row = []
    for num in line[i].split(','):
        if int(num) >= 1000000000:
            row.append(num)
    print(','.join(row))

我需要按特殊顺序输出大于10亿的数字

输入:

  

150000,10000000000; 2000000000,1345678910,330000000

输出:

  

10000000000
      2000000000,1345678910

如何在不使用表达式外的for循环的情况下将代码转换为列表表达式

1 个答案:

答案 0 :(得分:2)

因此,在没有任何for循环的情况下,您尝试执行以下操作:

def big_numbers(line):
    return ",".join(filter(lambda num: int(num) >= 1_000_000_000, line.split(',')))
print("\n".join(map(big_numbers, input().split(';'))))

与:

def big_numbers(line):
    condition = lambda num: int(num) >= 1_000_000_000
    filtered = filter(condition, line.split(','))
    return ",".join(filtered)
inp = input().split(';')
rows = map(big_numbers, inp)
print("\n".join(rows))

这样您输入的150000,10000000000;2000000000,1345678910,330000000 产量:

  

10000000000
      2000000000,1345678910