我的要求是将'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)
答案 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]