列表嵌套列表字符串 合并成一个大列表

['[1,2]','[3,4]','[5,6]']
如何可以快速合并成一个列表

[1,2,3,4,5,6]

阅读 6.8k
5 个回答

@忆先 的回答,写了个列表推导。

import json
source = ['[1,2]','[3,4]','[5,6]']
[i for s in source for i in json.loads(s)]
['[1,2]','[3,4]','[5,6]'].toString().replace(/[\[\]]/g, '').split(',')

其实形如s = '[1,2]'的字符串是一个合法的JSON,所以可以用JSON来解析

import json
raw = ['[1,2]','[3,4]','[5,6]']
arr = []
for s in raw:
    arr.extend(json.loads(s))

js的写法:
let arr = [[1,2],[3,4],[5,6]]
arr.reduce((a,b)=>{
return a.concat(b);
});

看到python也有类似的reduce
reduce(fn, arr); fn换成对应的方法名就可以了

字符串的话,一楼的答案很犀利

lst = ['[1,2]', '[3,4]', '[5,6]']

print [x for _ in lst for x in eval(_)]
print reduce(lambda x, y: x + y, map(lambda x: eval(x), lst))

如果lst里的字符串是由用户输入的,eval要慎用有安全隐患

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题