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

来源:互联网 发布:云购源码下载 编辑:程序博客网 时间:2024/06/17 19:02

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')]
原创粉丝点击