Python:嵌套列表理解/展平,在转换到外部列表时没有访问权限

Python:嵌套列表理解/展平,在转换到外部列表时没有访问权限,python,list,multidimensional-array,list-comprehension,nested-loops,Python,List,Multidimensional Array,List Comprehension,Nested Loops,(我希望这不是重复的问题,但其他问题太多,名称也不好,无法找到答案……) (在Python>3中测试,解决方案(如果有)必须在>=2.7中工作) 假设我们有一份清单: l = [[1,2], [3,4], [5,6]] 我们尝试使用标准列表理解方法将其展平: [v for sl in l for v in sl] == [1,2,3,4,5,6] 输出: True 然后,我们尝试: [(v, s1[0]) for sl in l for v in sl] 这导致: NameError:

(我希望这不是重复的问题,但其他问题太多,名称也不好,无法找到答案……)

(在Python>3中测试,解决方案(如果有)必须在>=2.7中工作)

假设我们有一份清单:

l = [[1,2], [3,4], [5,6]]
我们尝试使用标准列表理解方法将其展平:

[v for sl in l for v in sl] == [1,2,3,4,5,6]
输出:

True
然后,我们尝试:

[(v, s1[0]) for sl in l for v in sl]
这导致:

NameError: name 's1' is not defined
为什么会发生这种情况? 假设for循环的计算结果为该循环的计算结果应为:

[<expression> for <outer> in <list> for <inner> in <outer>]
[适用于in,适用于in]
换句话说:

r = []
for <outer> in <list>:
   for <inner> in <outer>:
      r.append(<inner>)
r=[]
例如:
例如:
r、 附加()

我遗漏了什么?

看来你把
sl
(“ess-ell”)和
s1
(“ess-one”)的名字弄混了


作为补充,您应该考虑切换到特定于程序员的字体,该字体强调了其他可能有歧义的字符之间的差异。一个流行的选择是。

现在我觉得自己真的很蠢:/我实际上在使用sublime中的
源代码Pro
。。。我想我是太匆忙了。我现在也投票决定关闭它——希望我能忘记曾经发生过的事;)