【发布时间】:2021-05-27 04:10:22
【问题描述】:
我正在尝试更好地使用列表推导,并且此代码适用于我使用它的目的(代码挑战),但我想使用列表推导并了解它的工作原理。
j = 0
for i in range(len(a)):
if (a[i] >= 0):
a[i] = ans[j]
j += 1
我试过了
lst = [x for (i,x) in enumerate(a) if x >= 0]
但显然我在这里误解了一些东西,因为它不起作用。
【问题讨论】:
-
ans[j]是什么?ans是列表吗? -
这里使用列表比较的主要问题是
j是有条件的高级。在理解中没有简单的方法来独立管理它。 -
@JoeFerndz 是的,这是被操纵的列表(排序),但它是一个列表
-
@Keyeric 你仍然需要以某种方式推进
j。你可以定义一个函数来推进它并返回值ans[j],但此时你不妨保留代码原样 -
列表推导式用于创建列表。你没有用你的代码创建一个列表,所以使用列表推导并不是什么有意义的事情。
标签: python python-3.x list-comprehension