Python字符串到数组的转换

时间:2019-05-10 10:19:19

标签: python arrays string python-3.6

我的要求是将'arrList'字符串作为main的参数,并使用逗号(,)对其进行拆分,每个名称均为一个数组(arr1,arr2,arr3)。现在,所有3个数组都应追加到列表中。输出应为:list:1、2、3、7、8、9、11、22、33。但是仅在实施时应遵循以下步骤。 尝试以下代码,但无法转换。任何帮助表示赞赏。

arr1 = [1,2,3]
arr2 = [7,8,9]
arr3 = [11,22,33]
list = []

def arrTest(arrList):
        var = arrList.split(',')
        for x in var:

    #f = open(, "r")
        #for x in f:
        #   list.append(x.rstrip('\n'))


if __name__ == '__main__':
    arrList = "arr1,arr2,arr3"
    arrTest(arrList)

3 个答案:

答案 0 :(得分:1)

arr1 = [1,2,3]
arr2 = [7,8,9]
arr3 = [11,22,33]
the_list = []

arrList = "arr1,arr2,arr3"
for array in arrList.split(','):
    if array in locals():
        the_list.extend(locals()[array])

print (the_list)

输出

[1, 2, 3, 7, 8, 9, 11, 22, 33]

locals()函数返回一个字典,其中包含在本地名称空间中定义的变量。

答案 1 :(得分:1)

您可以使用python dict数据结构。

arr1 = [1,2,3]
arr2 = [7,8,9]
arr3 = [11,22,33]
d = {"arr1": arr1, "arr2": arr2, "arr3": arr3}

def arrTest(arrList):
    l = []
    var = arrList.split(',')
    for x in var:
        for e in d[x]:
            l.append(e)
    return l

if __name__ == '__main__':
    arrList = "arr1,arr2,arr3"
    l = arrTest(arrList)
    print(l)

输出

[1, 2, 3, 7, 8, 9, 11, 22, 33]

答案 2 :(得分:0)

  

使用评估功能

arr1 = [1,2,3]
arr2 = [7,8,9]
arr3 = [11,22,33]
out = []

def arrTest(arrList):
        list_strs = arrList.split(',')
        for list_str in list_strs:
          l = eval(list_str)
          out.extend(l)


arrList = "arr1,arr2,arr3"
arrTest(arrList)
print(out)
  

[1、2、3、7、8、9、11、22、33]