首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >追加用迭代调用的列表

追加用迭代调用的列表
EN

Stack Overflow用户
提问于 2018-12-20 09:01:40
回答 1查看 51关注 0票数 0

我使用Python3.6的代码有一个简单的问题。

我正在读取一个csv并将int值存储在一个名为Total的列表中。我要求Python输入一个数字n=。(在本例中为n=9)。我用以下方式创建n (9)空列表:

代码语言:javascript
复制
for j in range (1,n+1):
    command=""
    command="list"+str(j)+"=[]

我有list1,list2,.list9

然后,我想通过从不同元素开始读取Total并读取每个n (9)元素来附加这些列表。

例如:

代码语言:javascript
复制
list1=[Tot[0],Tot[8]...] list2=[Tot[1],Tot[9],...]

要做到这一点,我想做的是

代码语言:javascript
复制
for k in range (0,n):
    for a in range (0+k,len(Total),n):
        listk.append(Total[a])

我的问题是,Python不能识别listk中的整数,例如:

代码语言:javascript
复制
list1, ... list9

有什么办法吗?也许用一门课?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-20 12:24:31

对于您的问题,我建议使用字典。字典是python中的一种数据结构,它允许存储信息对,例如列表及其名称。通过这种方式,您可以创建n个单独的命名列表,将它们全部存储在一个字典中,并在必要时追加它们。从不同的索引开始,我使用模数运算符。

这应该能起作用:

代码语言:javascript
复制
# shorthand syntax for creating a dictionary with n empty lists: list1,...,listn
    lists = {"list" + str(i + 1): [] for i in range(n)}
    for k in range(n):
        list = lists.get("list" + str(k + 1))
        for j in range(n):
            list.append(Total[(j + k) % n])

几个旁白:

您似乎对Python语法有一些误解。当您在循环中声明变量“命令”时,Python将保存指向堆栈内存中特定位置的指针。但是,您在一个循环中,所以“命令”在循环的每一次迭代中都会被覆盖,旧的指针丢失了。

以下一行:

代码语言:javascript
复制
command="list"+str(j)+"=[]

在Python中无效。使用方括号创建列表的语法如下:

代码语言:javascript
复制
variable = [item1, item2, item3] # or variable = [] for an empty list

不能以尝试的方式在字符串和列表创建之间混合。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53865364

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档