我试图在python单行for循环中进行赋值操作 喜欢
[a[i]=b[i] for i in range(0,len(b))]
这似乎不对。有没有办法可以在python单行中使用赋值操作进行循环?
答案 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()