For loop vs List Comprehension 给我 None 作为答案

For loop vs List Comprehension gives me None as answer

我想将单词附加到列表中。如果我进行 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, None, None, None, None, None, None, None]

您不需要使用 append,因为您在列表中,append 在所有情况下都可以 return None。

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

print(x)

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

你想要

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