Python的zip函数——将两个列表转换成字典

news/2024/7/6 3:05:55 标签: zip

zip返回一个tuple列表">zip()返回一个tuple列表

zip函数接受任意多个(包括0个和1个)序列作为参数,返回一个tuple列表。具体意思不好用文字来表述,直接看示例:

1.示例1:

x = [1, 2, 3]

y = [4, 5, 6]

z = [7, 8, 9]

xyz = zip(x, y, z)

print xyz

运行的结果是:

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

从这个结果可以看出zip函数的基本运作方式。

2.示例2:

x = [1, 2, 3]
y = [4, 5, 6, 7]
xy = zip(x, y)
print xy

运行的结果是:

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

从这个结果可以看出zip函数的长度处理方式。

3.示例3:

x = [1, 2, 3]
x = zip(x)
print x

运行的结果是:

[(1,), (2,), (3,)]

从这个结果可以看出zip函数在只有一个参数时运作的方式。

4.示例4:

x = zip()
print x

运行的结果是:

[]

从这个结果可以看出zip函数在没有参数时运作的方式。

5.示例5:

x = [1, 2, 3]

y = [4, 5, 6]

z = [7, 8, 9]

xyz = zip(x, y, z)

u = zip(*xyz)

print u

运行的结果是:

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

一般认为这是一个unzip的过程,它的运行机制是这样的:

在运行zip(*xyz)之前,xyz的值是:[(1, 4, 7), (2, 5, 8), (3, 6, 9)]

那么,zip(*xyz) 等价于 zip((1, 4, 7), (2, 5, 8), (3, 6, 9))

所以,运行结果是:[(1, 2, 3), (4, 5, 6), (7, 8, 9)]

注:在函数调用中使用*list/tuple的方式表示将list/tuple分开,作为位置参数传递给对应函数(前提是对应函数支持不定个数的位置参数)

6.示例6:

x = [1, 2, 3]
r = zip(* [x] * 3)
print r

运行的结果是:

[(1, 1, 1), (2, 2, 2), (3, 3, 3)]

它的运行机制是这样的:

[x]生成一个列表的列表,它只有一个元素x

[x] * 3生成一个列表的列表,它有3个元素,[x, x, x]

zip(* [x] * 3)的意思就明确了,zip(x, x, x)

转载自:https://www.cnblogs.com/frydsh/archive/2012/07/10/2585370.html


http://www.niftyadmin.cn/n/1741895.html

相关文章

使用zip创建一个字典

zip函数的应用 将一个列表转换成一个字典,并以所在位置为key: 0 推导式方法 代码如下: names [bob, tom, alice, jerry, wendy, smith,we,Jerry] dict_name{k:v for k,v in zip(range(1,len(names)1),names) } print(dict_name) 使用推…

单独获取字典中的键和值、并进行字典排序——Python

1、首先遍历字典所有的键-值对可以使用items() dict_name{k:v for k,v in zip(range(1,len(names)1),names) } print(dict_name)for i,j in dict_name.items():print(str(i) : j) 2、只遍历键时可以使用keys(),还可以使用sorted()进行排序 names [bob, tom, a…

python3中的filter

python3中的filter与python2中的是不一样的 其中,在python2中 filter(function, iterable) filter返回的是一个list,可以直接使用它 #在python2中 q filter(lambda x:x%2 0, range(1,10)) print(q) #输出:「 2,4&#xff0c…

Python list的基本操作

添加 list中的append只能一次插入一个对象 name [1,2,3] name.append(2) print(name) 想要插入多个对象,使用extend(); 需要注意的是extend中的参数 必须是列表,需要将多个对象组合成列表的形式; 因此,extend还可以将两个列表进行合并 …

tuple创建的注意事项

tuple创建只有一个对象的元组的时候,需要注意 tuple1 (1) 这样创建的元组是错误的,tuple1是int类型 应该这样创建 tuple1 (1,) 或者tuple1 1, 划重点!!! tuple元组的标志在于中间的‘,’&#xf…

python3 print输出不换行

python 3.x版本输出不换行格式如下 print(x, end" ") # end"" 可使输出不换行。双引号之间的内容就是结束的内容, # 可以是空格,也可以是其他字符。默认为换行 比如: print(x,end” ! ”) # 以!为结尾 …

python3 str对象的基本操作

#字符串本身是不可以修改的,但是可以使用切片操作间接进行修改 str1 abcdefg str1 str1[:3]23str1[3:] #print(str1) 字符串的操作 1. capitalize() 首字母大写 str2 abc str3 str2.capitalize() print(str3) 2. casefold() 所有字符改成小写 str2 ABC str…

python 字符串的格式化

字符串的格式化 分为位置参数和关键字参数 1 位置参数 a {0:.1f}{1}.format(21.56,GB) print(a) 2 关键字参数 :冒号后面表示的是该关键字的输出格式或属性 可以实现不同格式的输出,例如保留到小数点之后几位。。。 b {a:.1f}{b}.format(a21.56,bGB) print…