关于字符串和变量的转换问题
如标题。这是我写代码遇到的问题。
例子:
假如有变量:
list1 = []
list2 = []
list3 = []
list4 = []
list5 = []
list6 = []
list7 = []
list8 = []
list9 = []
list10 = []
..............
.............
list20 = []
(等号后面为列表,列表中的元素为整形)
我想要实现以下(假代码),该怎么做:
假代码:
for i in range(20):
temp = 'list' + str(i + 1)
#具体要什么操作才能达成下一行的操作
for each in temp;
print(each) #(为了方便看才这样写)
#each要为变量listi (i = 1,2,3,4...20)中的值。
假代码描述:
想要通过某些操作让 'listi' (i = 1,2,3,4,......20)(注意'listi'为字符串)变为变量listi (i = 1,2,3,4.....20),
并让变量listi (i = 1,2,3,4......20)赋值于temp。
(语文不是很好,描述可能有些问题,请见谅)
for i in range(20):
temp =eval('list' + str(i + 1))
for each in temp:
print(each) 可以用多个列表组成列表,没必要定义多个。 本帖最后由 qq1151985918 于 2021-3-24 16:22 编辑
完全没必要,你完全可以 列表嵌套列表或者用字典
>>> from random import randint
>>> Dict = {}
>>> for k in range(10):
List = []
for v in range(5):
List.append(randint(0,10))
key = "list%d"%k
Dict = List
>>> Dict
{'list0': , 'list1': , 'list2': , 'list3': , 'list4': , 'list5': , 'list6': , 'list7': , 'list8': , 'list9': }
>>> Dict["list0"]
>>> Dict["list1"]
>>>
>>> from random import randint
>>> List = []
>>> for k in range(10):
lst = []
for v in range(5):
lst.append(randint(0,10))
List.append(lst)
>>> List
[, , , , , , , , , ]
>>> List
>>> List
>>>
页:
[1]