生成列表[list(z) for z in zip(A,B)]为什么既要用list,又要加上[]?

A=['南京市','苏州市','无锡市','南通市','淮安市','连云港市','镇江市','扬州市','泰州市','宿迁市','徐州市','常州市','盐城市']
B=[1000,1003,800,900,432,100,909,876,100,50,31,980,2000]
[list(z) for z in zip(A,B)]
能够生成需要的列表,为什么既要用list(),又要用[]括起来呢?

阅读 6.2k
2 个回答

为啥不试一下

zip 每个元素是 A/B 两个列表中同位置元素的 tuple,比如('南京市,1000)

list(z) 本质是 list(('南京市', 1000)),结果是['南京市',1000]

最外层的 [] 把 zip 返回的迭代器遍历一遍

这段代码用另一种写法就是 list(map(list,zip(A,B)))

佩服你提问题的勇气,这个问题拆解一下,自己运行一下就可以了呀。。。

  1. 最外层 []

一般语句都是下面的结构,用来收集结果

[ for in arr if len(_) == 3]

  1. 里面的 list. tuple 转 list。不加 list(z) 的结果是什么就明白了。。。

image.png

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