【发布时间】:2021-12-04 09:31:41
【问题描述】:
我是 Python 新手,正在使用 python3。 我列出了类型点的 og 对象
class Po:
def __init__(self, x: int, y: int):
self.x = x
self.y = y
C = [Po(0, j) for j in range(10)]
和二维数组
m = [[j for i in range(2)] for j in range(10)]
我想将 C 的所有字段 x 分配给 m 中索引为 0 的值
C[:].x = m[:][0]
但是 python 说列表没有字段 x。 我该怎么做以及为什么我不能以这种方式访问 x
【问题讨论】:
-
您使用的是 Python 3;您不太可能专门使用 3.0。
-
C是一个点列表。你想用它做什么?修改它的 x 值? -
C[:]指的是一个列表,C[:].x正在尝试访问列表中的字段x,您将需要使用支持这种切片列表的 for 循环或库 -
C[:]基本上是C的浅拷贝;.不会“分布”在该列表的每个元素上。 -
特别检查
m[:][0]在做什么,它并没有像你想象的那样对列进行切片。如果您来自 matlab,您可能会更喜欢使用确实支持这种 slicign 但 idk 的numpy数组,如果它也适用于对象字段。
标签: python python-3.x list slice