在python for循环中进行赋值

时间:2017-06-01 09:13:21

标签: python for-loop

我试图在python单行for循环中进行赋值操作 喜欢

[a[i]=b[i] for i in range(0,len(b))]

这似乎不对。有没有办法可以在python单行中使用赋值操作进行循环?

5 个答案:

答案 0 :(得分:1)

你在这里混合了两个范例,即循环和列表理解。列表理解将是

a = [x for x in b]

答案 1 :(得分:1)

复制列表可以在Python中以多种方式完成。

  • 使用切片

    a = b [:]

  • 使用list()

    a = list(b)

答案 2 :(得分:1)

无需循环。您可以使用切片分配:

a[0:len(b)]= b

答案 3 :(得分:1)

您可以使用:

[a.__setitem__(i, b[i]) for i in range(0,len(b))]

__setitem__是实现索引分配的方法。然而,仅仅因为副作用而进行列表理解是一个很大的禁忌。

你可以简单地使用切片分配:

a[:len(b)] = b

答案 4 :(得分:0)

在python 3中可以通过以下方式完成:

a = b.copy()