解释嵌套列表理解是如何工作的?

解释嵌套列表理解是如何工作的?

我明白这一点是没有问题的:

a = [1,2,3,4]b = [x for x in a]

我以为仅此而已,但后来我发现了这个片段:

a = [[1,2],[3,4],[5,6]]b = [x for xs in a for x in xs]

这使得b = [1,2,3,4,5,6]..问题是我很难理解[x for xs in a for x in xs]有人能解释一下它的工作原理吗?


斯蒂芬大帝
浏览 556回答 3
3回答

慕容森

啊,难以理解的“嵌套”理解。循环以与理解相同的顺序展开。[leaf for branch in tree for leaf in branch]这样想是有帮助的。for branch in tree:     for leaf in branch:         yield leaf这个PEP 202断言“最后一个索引变化最快”的语法是“正确的”,特别是没有解释为什么.

婷婷同学_

如果a = [[1,2],[3,4],[5,6]],如果我们打开这个列表,我们就会得到:      +----------------a------------------+        | +--xs---+ , +--xs---+ , +--xs---+ | for xs in a      | | x , x |   | x , x |   | x , x | | for x in xs a  =  [ [ 1 , 2 ] , [ 3 , 4 ] , [ 5 , 6 ] ]b  =  [ x for xs in a for x in xs ] == [1,2,3,4,5,6] #a list of just the "x"s

繁花不似锦

b = [x for xs in a for x in xs]类似于下面的嵌套循环。b = []for xs in a:    for x in xs:        b.append(x)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python