For 循环 vs 列表理解给了我 None 作为答案

问题描述

我想将单词附加到列表中。如果我进行 for 循环,返回的答案是正确的。

但是,如果我使用列表理解方法,我会得到 None 的答案。我做错了什么?

x=[]
for i in range(0,10):
    x.append('hi'+str(i))
print(x)

答案:['hi0','hi1','hi2','hi3','hi4','hi5','hi6','hi7','hi8','hi9']

x= [x.append('hi'+str(i)) for i in range(0,10)]

print(x)

答案:[None,None,None]

解决方法

您的 x = [x.append('hi'+str(i)) for i in range(0,10)],使用每个 x.append 调用的结果构建一个列表,即无,因为它是就地完成的,然后您用该新列表擦除 x

你想要

x = [f"hi{i}" for i in range(10)]

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...