目录
简介
示例
例子1
例子2
例子3
简介
zip在英语里的意思是拉链。想象两个列表(或任何可迭代的容器),a和b。两者各自有若干元素。zip的输入变量就是两个可迭代的容器,zip的返回值也是一个容器,容器的每个元素都是一个二元元组(tuple)。如下所示:
图中的第1对,第2对.....对应zip返回值的第一个元素、第二个元素.....这个结构像是现实中的拉链一样,所以叫zip
zip具有如下性质:
zip的返回值含有的元素个数与较短的输入容器相等。
示例
例子1
可见,生成的容器里,每个元素都是一个tuple。且a与b含有的元素类型不必相同(a的元素是数字,b的是字符)。
例子2
在这个例子里,a与b的元素个数不再相同。a有三个元素1,2,3;b只有两个元素'q','w'
可见,当其中较短的容器(这里,b只有两个元素,所以比a短)迭代到底后,zip就不再继续。所以zip返回值只含有两个元组。故zip的返回值含有的元素个数与较短的输入容器相等。
例子3
这个例子来自OpenAI联合创始人Andrej Karpathy的人工智能教程The spelled-out intro to language modeling: building makemore
w[1:]也是一个列表,它排除了w的第一个元素(准确的说,是第0个元素)1,留下2,3,4,5.故w[1:]只有4个元素,比w少一个。所以zip(w[1:],w)的返回值的元素个数是4.