所以我正在编写一个程序来将嵌套列表打印成一个平面列表,我现在只是想获取输入部分。我遇到了麻烦,因为输入显示的数组会给我一个字符串,并且使用 list() 也将包括括号/逗号在内的所有元素放入列表中。
arr = input("Enter your nested array here: " )
#arr = ast.literal_eval(list(arr)) just something I tried here
#arr = [[[1,2,3], [4,5]], 6]
flatArr = flattenArrays(arr)
print (flatArr)
有没有好方法可以将此命令行输入或文件输入转换为列表列表?
摆脱list
调用,它将字符串转换为字符列表 - 这是您不想要的。
In [14]: x = ast.literal_eval(input('List: '))
List: [[1, 2, 3], [4, 5], 6]
In [15]: x
Out[15]: [[1, 2, 3], [4, 5], 6]
In [16]: type(x)
Out[16]: list
对于这种情况,您可以使用json
方法loads
:
import json
a = '[[1, 2, 3], [4, 5], 6]'
a = json.loads(a)
a
#[[1, 2, 3], [4, 5], 6]