【Python之旅】第二篇(八):zip拉链与map拉链

简介:

1.zip拉链


·功能:将两个列表合并起来,成为一个元素为元组的列表;

·演示如下:

1
2
3
4
5
6
7
8
9
10
>>> a = range( 0 , 5 )
>>> b = range( 5 , 10 )
>>> a
[ 0 1 2 3 4 ]
>>> b
[ 5 6 7 8 9 ]
>>> zip(a,b)
[( 0 5 ), ( 1 6 ), ( 2 7 ), ( 3 8 ), ( 4 9 )]
>>> zip(b,a)
[( 5 0 ), ( 6 1 ), ( 7 2 ), ( 8 3 ), ( 9 4 )]

·如果两个列表元素数量不一致,则zip会自动忽略:

1
2
3
4
5
6
7
8
>>> a = range( 1 , 5 )
>>> b = [ 'a' 'b' 'c' ]
>>> a
[ 1 2 3 4 ]
>>> b
[ 'a' 'b' 'c' ]
>>> zip(a,b)
[( 1 'a' ), ( 2 'b' ), ( 3 'c' )]


·利用zip的功能,可以造一个字典:

1
2
3
4
5
6
7
>>> key = [ 'name' 'girlfriend' ]
>>> values = [ 'xpleaf' 'CL' ]
>>> zip(key, values)
[( 'name' 'xpleaf' ), ( 'girlfriend' 'CL' )]
>>> dict(zip(key, values))
{ 'girlfriend' 'CL' 'name' 'xpleaf' }
>>> dict(zip(key, values))




2.map


·map的功能很强大,这里只提及其类似于zip的功能;

1
2
3
4
5
6
7
8
>>> a = range( 1 , 5 )
>>> b = [ 'a' 'b' 'c' 'd' ]
>>> map(a,b)
Traceback (most recent call last):
   File  "<stdin>" , line  1 in  <module>
TypeError:  'list'  object  is  not callable
>>> map(None,a,b)
[( 1 'a' ), ( 2 'b' ), ( 3 'c' ), ( 4 'd' )]

·可以看到map需要指定第一个参数,因为map不会自动忽略两个列表数量不同的情况,指定参数作为数量不足列表的填充:

1
2
3
4
>>> b.pop()
'd'
>>> map(None, a, b)
[( 1 'a' ), ( 2 'b' ), ( 3 'c' ), ( 4 , None)]
相关文章
|
3月前
|
Python
【python笔记】使用zip函数迭代多个可迭代对象
【python笔记】使用zip函数迭代多个可迭代对象
|
5月前
|
索引 Python
Python利用列表、字典和zip函数处理数据
最近重温Python基础语法,一道练习题巩固下列表、字典、循环。 给定下面两个列表 attributes 和 values,要求针对 values 中每一组子列表 value,输出其和 attributes 中的键对应后的字典,最后返回字典组成的列表,请分别用一行和多行条件循环语句,来实现这个功能
|
算法 Python
Python|zip函数-求最长公共前缀
Python|zip函数-求最长公共前缀
101 0
|
数据可视化 索引 Python
|
Python
python3的zip函数
zip函数接受任意多个可迭代对象作为参数,将对象中对应的元素打包成一个tuple,然后返回一个可迭代的zip对象. 这个可迭代对象可以使用循环的方式列出其元素 若多个可迭代对象的长度不一致,则所返回的列表与长度最短的可迭代对象相同.
714 0

热门文章

最新文章