【发布时间】:2022-01-17 18:06:31
【问题描述】:
我最近在练习考试中遇到了一个列表理解问题,虽然我有正确的答案,但我不明白这些答案是如何有效的。 问题:以下 sn-p 将发送多少颗星 (*) 到控制台?
lst = [[c for c in range(r)] for r in range(3)]
for x in lst:
for y in x:
if y < 2:
print('*', end='')
我的回答是 2 星。我的想法是 lst = [0,1,2]。 x 和 lst 应该是相同数量的元素 - 0,1,2。只有 0, 1
【问题讨论】:
-
正确答案是零...此代码将生成
IndentationError...但认真理解这些内容的最佳方法是打印各个部分。尝试在for x in lst:之后添加print(x)。或者打印lst,你会发现它不是[0,1,2]。 -
谢谢,对缩进错误表示歉意 - 我发布后看到了,但很高兴为其他人指出。
标签: python list list-comprehension