与for循环和列表理解不同的结果

2024-04-25 19:25:14 发布

您现在位置:Python中文网/ 问答频道 /正文

animals = ['lion' ,'tiger', 'lepord', 'cheetah', 'cat']

find = []

for name in animals:

    if name == 'lion':

        find.append(name)

print (find)

find = [find.append(name) for name in animals if name=='lion']

print (find)

我运行了上面的代码片段,得到了不同的结果。 for循环输出是['lion'] 鉴于 列表理解是['none']。你知道吗

在我看来,for循环和list理解应该产生相同的结果。但事实并非如此。请帮我找出原因。你知道吗


Tags: 代码namein列表foriffindcat
1条回答
网友
1楼 · 发布于 2024-04-25 19:25:14

None来自list方法append,该方法返回None。你知道吗

而不是像这样调用append

[find.append(name) for name in animals if name=='lion']

写:

[name for name in animals if name=='lion']

相关问题 更多 >