您的位置:首页 > 编程语言 > Python开发

python学习——zip()函数的用法

2017-08-21 21:47 766 查看
1、zip()函数将序列进行组合,形成一个元组序列,举例如下:

a = [1,2,3,4]
b = [5,6,7,8]
c = list(zip(a,b))
print(c)


结果如下:

[(1, 5), (2, 6), (3, 7), (4, 8)]


将两个序列的元素按照索引的位置一一对应,形成一个元组序列。

2、如果序列的长度不一致会出现什么现象?

a = [1,2,3,4]
b = [5,6,7,8,9]
c = list(zip(a,b))
print(c)


结果如下:

[(1, 5), (2, 6), (3, 7), (4, 8)]


可以看出,它是按照最短的序列进行组合的。

3、如果针对两个以上的序列组合,会得到什么结果?

a = [1,2,3,4]
b = [5,6,7,8,9]
c = [1,2,3,4,5,6]
d = list(zip(a,b,c))
print(d)


得到结果:

[(1, 5, 1), (2, 6, 2), (3, 7, 3), (4, 8, 4)]


可以看出,序列中的每个元组中的数量是与zip()函数中的参数数量相同的。

4、对于字符串是不是也是可以的呢?

a = ['abc','abcd','abcde']
b = ['cba','cbda','cbdae']
c = list(zip(a,b))
print(c)


得到结果:

[('abc', 'cba'), ('abcd', 'cbda'), ('abcde', 'cbdae')]


看来是一样的。

5、那么上例中的字符串也是相当于一个列表的,如果对序列中的字符串进行组合,会得到什么?

a = ['abc','abcd','abcde']
c = list(zip(a))
print(c)


得到结果:

[('abc',), ('abcd',), ('abcde',)]


也是一个元组序列

6、那么这么呢?

a = ['abc','abcd','abcde']
c = list(zip(*a))
print(c)


得到结果:

[('a', 'a', 'a'), ('b', 'b', 'b'), ('c', 'c', 'c')]


zip(*a)函数相当于把字符串列表中的每一个元素当成一个字符串序列,进行组合。上述程序等价于:

a = ['abc','abcd','abcde']
c = list(zip('abc','abcd','abcde'))
print(c)


得到同样的结果:

[('a', 'a', 'a'), ('b', 'b', 'b'), ('c', 'c', 'c')]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: