python for循环问题,很困扰

a=['one','two']
for p,q in a:
    print p,q

出错

a=[['one','tow']]
for p,q in a:
    print p,q

这样就可以
第一种我一直就认为是这样的:a的one,two分别赋值给p,q。
不然得怎么理解?

阅读 2.5k
2 个回答

在Python中,for循环运行列表(或生成器)中的每个元素。 所以第一个循环的正确形式是:

for x in a:
    print(x)

此外,Python里我们能写:

x, y = (1, 2)

以后x是1,y是2。我们也能写:

x, y = [1, 2]

具有相同的效果。
如果我们写:x, y = 1就出了错误,在你的一个for循环里除了一摸一样的错误。

在第二个f例子里列表[['one', 'two']]只有个元素,就是['one', 'two']。for循环要跑一次,这一次p, q就是['one', 'two'],类似于上面的例子.

第一个例子里a有两个元素, 分别是‘one',’two'. 赋值在p,q上是不确定的,
第二个例子里a有一个元素[’one','two'],顺序确定。

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