我使用Python3.6的代码有一个简单的问题。
我正在读取一个csv并将int值存储在一个名为Total的列表中。我要求Python输入一个数字n=。(在本例中为n=9)。我用以下方式创建n (9)空列表:
for j in range (1,n+1):
command=""
command="list"+str(j)+"=[]我有list1,list2,.list9
然后,我想通过从不同元素开始读取Total并读取每个n (9)元素来附加这些列表。
例如:
list1=[Tot[0],Tot[8]...] list2=[Tot[1],Tot[9],...]要做到这一点,我想做的是
for k in range (0,n):
for a in range (0+k,len(Total),n):
listk.append(Total[a])我的问题是,Python不能识别listk中的整数,例如:
list1, ... list9有什么办法吗?也许用一门课?
发布于 2018-12-20 12:24:31
对于您的问题,我建议使用字典。字典是python中的一种数据结构,它允许存储信息对,例如列表及其名称。通过这种方式,您可以创建n个单独的命名列表,将它们全部存储在一个字典中,并在必要时追加它们。从不同的索引开始,我使用模数运算符。
这应该能起作用:
# 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将保存指向堆栈内存中特定位置的指针。但是,您在一个循环中,所以“命令”在循环的每一次迭代中都会被覆盖,旧的指针丢失了。
以下一行:
command="list"+str(j)+"=[]在Python中无效。使用方括号创建列表的语法如下:
variable = [item1, item2, item3] # or variable = [] for an empty list不能以尝试的方式在字符串和列表创建之间混合。
https://stackoverflow.com/questions/53865364
复制相似问题