Python: List元素是连接的,如何分隔

15 浏览
0 Comments

Python: List元素是连接的,如何分隔

如何修复这个问题?

0
0 Comments

Python中,列表元素是连接在一起的,如何进行分隔?

问题的出现原因是Python中的列表在复制时会产生连接的效果,即多个列表元素实际上是指向同一个对象的引用。这就导致了当我们对其中一个元素进行操作时,其他元素也会跟着改变,从而造成了问题。

解决方法一是使用`eval`函数对`repr`函数的结果进行求值。具体操作是先使用`repr`函数将列表转化为字符串表示,然后再使用`eval`函数对字符串进行求值,从而得到一个新的列表,其中的元素是独立的对象。代码如下所示:

mylist = eval(repr([[0,0,0,0]]*3))

解决方法二是使用列表推导式来创建列表。通过循环生成多个相同的列表元素,从而得到一个新的列表,其中的元素是独立的对象。代码如下所示:

mylist = [[0,0,0,0] for _ in range(3)]

通过以上两种方法,我们可以解决Python中列表元素连接的问题,从而实现对列表元素的独立操作。

0
0 Comments

问题的原因是使用*操作符时,Python会为整个列表使用相同的对象,这就是为什么当您更改列表中的任何一个元素时,其余元素也会被更改的原因。

解决方法是使用列表推导式创建列表,并为每个元素分配一个新对象。可以使用以下代码来解决这个问题:mylist = [[0 for _ in xrange(4)] for _ in xrange(3)]。这将创建一个3行4列的列表,其中每个元素都是一个新的对象。

通过使用列表推导式创建列表,每个元素都被分配了一个新的对象,因此当您更改一个元素时,不会影响到其他元素。

这样,您就可以在Python中正确地分离列表元素。

0