Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:如何将一个列表粘贴到另一个列表中_Python_List - Fatal编程技术网

Python:如何将一个列表粘贴到另一个列表中

Python:如何将一个列表粘贴到另一个列表中,python,list,Python,List,请帮我解决这个问题: 我有一个包含数字和列表的列表: list = [1,2,[3,4,5],6,7,[8,9]] 我想得到的只是一个数字列表(mergin在父列表中包含了列表): 例如: 使用递归和: 请记住,不要在自己的类型后面列出名称:)。使用递归和: 请记住不要在自己的类型后面列出姓名:)。我个人使用这种方法: 这是递归展平的功能版本,它处理元组和列表,并允许您插入任何位置参数的混合。返回按arg by arg顺序生成整个序列的生成器: flatten = lambda *n: (e

请帮我解决这个问题: 我有一个包含数字和列表的列表:

list = [1,2,[3,4,5],6,7,[8,9]]
我想得到的只是一个数字列表(mergin在父列表中包含了列表): 例如:

使用递归和:

请记住,不要在自己的类型后面列出名称:)。

使用递归和:


请记住不要在自己的类型后面列出姓名:)。

我个人使用这种方法:

这是递归展平的功能版本,它处理元组和列表,并允许您插入任何位置参数的混合。返回按arg by arg顺序生成整个序列的生成器:

flatten = lambda *n: (e for a in n
    for e in (flatten(*a) if isinstance(a, (tuple, list)) else (a,)))
用法:

l1 = ['a', ['b', ('c', 'd')]]
l2 = [0, 1, (2, 3), [[4, 5, (6, 7, (8,), [9]), 10]], (11,)]
print list(flatten(l1, -2, -1, l2))
['a', 'b', 'c', 'd', -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
这在Python3.x和Python2.x中都可以正常工作

这里有一个同样的正则表达式解决方案

 import re

 def Flatten(TheList):
   a = str(TheList)
   b,crap = re.subn(r'[\[,\]]', ' ', a)
   c = b.split()
   d = [int(x) for x in c]

   return(d)

我个人使用这种方法:

这是递归展平的功能版本,它处理元组和列表,并允许您插入任何位置参数的混合。返回按arg by arg顺序生成整个序列的生成器:

flatten = lambda *n: (e for a in n
    for e in (flatten(*a) if isinstance(a, (tuple, list)) else (a,)))
用法:

l1 = ['a', ['b', ('c', 'd')]]
l2 = [0, 1, (2, 3), [[4, 5, (6, 7, (8,), [9]), 10]], (11,)]
print list(flatten(l1, -2, -1, l2))
['a', 'b', 'c', 'd', -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
这在Python3.x和Python2.x中都可以正常工作

这里有一个同样的正则表达式解决方案

 import re

 def Flatten(TheList):
   a = str(TheList)
   b,crap = re.subn(r'[\[,\]]', ' ', a)
   c = b.split()
   d = [int(x) for x in c]

   return(d)


compiler.ast.flatte
只是一个递归函数(使用
type(foo)is list
),所以您的第二个解决方案要好得多。@Blender-Eh,它更整洁;)。但是,是的,我可能会删除它,因为它是不推荐的
,如果不是instance(I,Iterable):
而不是“I”,你可能是指“parent”@Haidro和thnxsolution@c00p3r.web是的,我做了,谢谢你编辑:)
compiler.ast.flatte
只是一个递归函数(使用
type(foo)is list
),所以您的第二个解决方案要好得多。@Blender-Eh,它更整洁;)。但是,是的,我可能会删除它,因为它是不推荐的
,如果不是instance(I,Iterable):
而不是“I”,你可能是指“parent”@Haidro和thnxsolution@c00p3r.web是的,我做了,谢谢你编辑:)@msw:看看OP的标题。当你不知道正确的单词时,很难搜索到东西。我看到一个大签名上写着“标记为重复”,在评论中重复这个有什么意义?我只是不知道它叫“扁平化”。不知情不是犯罪。每个人都做mistakes@msw:看看OP的标题。当你不知道正确的单词时,很难搜索到东西。我看到一个大签名上写着“标记为重复”,在评论中重复这个有什么意义?我只是不知道它叫“扁平化”。不知情不是犯罪。每个人都会犯错——1你就不能有一个正常的功能吗?为什么要在lambda中插入一条长线,并将其命名为紧跟其后的变量。这不是我说的
lambda
关键字的目的匿名函数'-1。如果
L=[1,{2,3},4,(5,6,[7,8,9),{10,11,12,13}]
会怎么样?@Haidro:这个问题只需要方括号就可以了。@alexpinho98:我想使用它会更整洁,而且符合python的禅宗<代码>美丽胜于丑陋。无论如何,为了更清楚地了解
lambda的用法,你最好看看。是的,regex无疑是一个更好的观点。。。总之,编辑了answer@TusharMakkar我认为公认答案的代码比
lambda
版本更可读、更美观、更易于解释<代码>lambda
有它的用途,我在很多方面都使用过它,比如非常短的“代数”函数和“map”和“filter”函数,但我认为在这种情况下,“lambda”不是正确的方法。一个好的经验法则可能是:“如果语句长度超过任意数量(比如80个)的字符,并且它涉及递归:使用普通函数,否则:使用` lambda'.-1难道你不能只使用一个常规函数吗?”?为什么要在lambda中插入一条长线,并将其命名为紧跟其后的变量。这不是我说的
lambda
关键字的目的匿名函数'-1。如果
L=[1,{2,3},4,(5,6,[7,8,9),{10,11,12,13}]
会怎么样?@Haidro:这个问题只需要方括号就可以了。@alexpinho98:我想使用它会更整洁,而且符合python的禅宗<代码>美丽胜于丑陋。无论如何,为了更清楚地了解
lambda的用法,你最好看看。是的,regex无疑是一个更好的观点。。。总之,编辑了answer@TusharMakkar我认为公认答案的代码比
lambda
版本更可读、更美观、更易于解释<代码>lambda
有它的用途,我在很多方面都使用过它,比如非常短的“代数”函数和“map”和“filter”函数,但我认为在这种情况下,“lambda”不是正确的方法。一个好的经验法则可能是:“如果语句长度超过任意数量(比如80个)的字符,并且涉及递归:使用普通函数,否则:使用` lambda'”。