逆鳞丶樱之羽 发表于 2021-3-24 15:27:34

关于字符串和变量的转换问题

如标题。

这是我写代码遇到的问题。
例子:
假如有变量:
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。

(语文不是很好,描述可能有些问题,请见谅)

逃兵 发表于 2021-3-24 15:27:35

for i in range(20):
    temp =eval('list' + str(i + 1))
    for each in temp:
      print(each)

suchocolate 发表于 2021-3-24 15:59:40

可以用多个列表组成列表,没必要定义多个。

qq1151985918 发表于 2021-3-24 16:13:49

本帖最后由 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]
查看完整版本: 关于字符串和变量的转换问题