首页 > 解决方案 > 列表理解失败,无法显示无

问题描述

a = []
b = []
c = []
d = []
a = input('Enter first  row (enter 0 for space): ')
b = input('Enter second row (enter 0 for space): ')
c = input('Enter third  row (enter 0 for space): ')
d = input('Enter fourth row (enter 0 for space): ')

start = [int(a[0]),int(a[2]),int(a[4]),int(a[6]),
         int(b[0]),int(b[2]),int(b[4]),int(b[6]),
         int(c[0]),int(c[2]),int(c[4]),int(c[6]),
         int(d[0]),int(d[2]),int(d[4]),int(d[6])]

[None if x==1 else x for x in start]

start

这是我的代码,我尝试输入一些值,例如 (1 2 3 4) 并将其保存到列表中,然后我想使用列表推导将每个 1 转换为None. None但是当我打印它时它不能改变。

标签: python

解决方案


列表推导不会start就地修改;您需要一个常规for来执行一系列赋值语句。

for i, x in enumerate(start):
    if x == 1:
        start[i] = None

推荐阅读