相关疑难解决方法(0)

列表更改意外地反映在子列表中

我需要在Python中创建一个列表列表,所以我输入以下内容:

myList = [[1] * 4] * 3
Run Code Online (Sandbox Code Playgroud)

列表看起来像这样:

[[1, 1, 1, 1], [1, 1, 1, 1], [1, 1, 1, 1]]  
Run Code Online (Sandbox Code Playgroud)

然后我改变了最里面的一个值:

myList[0][0] = 5
Run Code Online (Sandbox Code Playgroud)

现在我的列表看起来像这样:

[[5, 1, 1, 1], [5, 1, 1, 1], [5, 1, 1, 1]]  
Run Code Online (Sandbox Code Playgroud)

这不是我想要或期望的.有人可以解释一下发生了什么,以及如何解决这个问题?

python list mutable nested-lists

576
推荐指数
10
解决办法
3万
查看次数

Python列表追加行为

真的不知道如何制定问题......

假设我执行以下操作:

    >>> l = [[]]*2
    >>> l
    [[], []]
    >>> l[0].append(1)
    >>> l
    [[1], [1]]
Run Code Online (Sandbox Code Playgroud)

为什么1会被附加到两个列表中?

python list

21
推荐指数
3
解决办法
3848
查看次数

如何在python中创建一些空的嵌套列表

我想要一个变量,它是一个嵌套的列表,列出了一些我可以在以后填写的空列表.看起来像:

my_variable=[[], [], [], []]
Run Code Online (Sandbox Code Playgroud)

但是,我事先并不知道我需要多少列表,只是在创建步骤,因此我需要一个变量a来确定它.我想简单my_variable=[[]]*a,但是创建了列表的副本,这不是我想要的.

我可以:

my_variable=[]  
for x in range(a):
   my_variable.append([])
Run Code Online (Sandbox Code Playgroud)

但我正在寻找一种更优雅的解决方案(最好是单线).有没有?

python list nested-lists

7
推荐指数
2
解决办法
4万
查看次数

Python中长度为n的空列表序列?

在python中[]*2,给出[]

[[],[]]取而代之的最简单的方法是什么?

python list sequence

3
推荐指数
1
解决办法
235
查看次数

在python中列出没有引用的列表

我试图以一种有效的方式列出一个列表,但我无法想出任何方法来避免引用.这是我到目前为止所尝试的,显然没有成功:

>>> test=[[None]*3][:]*3
>>> test
[[None, None, None], [None, None, None], [None, None, None]]
>>> test[0][0]=0
>>> test
[[0, None, None], [0, None, None], [0, None, None]]
>>> 
Run Code Online (Sandbox Code Playgroud)

这不是我想要发生的事情.我想要的是0是第一个列表中的第一个项目.我怎样才能做到这一点?

python list

1
推荐指数
1
解决办法
131
查看次数

是否有更短的方式来分配这些变量?

假设我的程序在启动时需要声明以下变量:

Pos_List  = []
Room_List = []
Type_List = []
Spec_List = []
Sub_List  = []
Rtr_List  = []
IPa_List  = []
MAC_List  = []
Run Code Online (Sandbox Code Playgroud)

目前要做到这一点,我完全如上所示.我的问题是,有没有更短的方法来做到这一点,甚至一种方法在一条线上做到这一切?在我的程序中有几次出现这种情况,并占用了大量空间.有什么建议?谢谢.

python variables

0
推荐指数
1
解决办法
66
查看次数

标签 统计

python ×6

list ×5

nested-lists ×2

mutable ×1

sequence ×1

variables ×1