首先看一下三个函数的python文档解释
1.dict函数文档:
@overload
def __init__(self, **kwargs: _VT) -> None
可能的类型:
• (self: dict, kwargs: Dict[str, _VT]) -> None
• (self: dict, map: Mapping[_KT, _VT], kwargs: Dict[str, _VT]) -> None
• (self: dict, iterable: Iterable[Tuple[_KT, _VT]], kwargs: Dict[str, _VT]) -> None
函数形式:
dict() -> 新的空字典
dict(mapping) -> 根据mapping对象的(key, value)对生成新的字典对象
dict(iterable) -> new dictionary initialized as if via:
d = {} for k, v in iterable:
d[k] = v
dict(**kwargs) -> 在关键字参数列表中使用name = value对初始化的新字典。 例如:dict(one= 1, two= 2)
2.zip函数文档:
builtins
@overload
def zip(iter1: Iterable,
iter2: Iterable,
iter3: Iterable,
iter4: Iterable,
iter5: Iterable,
iter6: Iterable,
*iterables: Iterable) -> Iterator[Tuple[Any, ...]]
Possible types:
• (iter1: Iterable[_T1])
-> Iterator[Tuple[_T1]]
• (iter1: Iterable[_T1], iter2: Iterable[_T2])
-> Iterator[Tuple[_T1, _T2]]
• (iter1: Iterable[_T1], iter2: Iterable[_T2], iter3: Iterable[_T3])
-> Iterator[Tuple[_T1, _T2, _T3]]
• (iter1: Iterable[_T1], iter2: Iterable[_T2], iter3: Iterable[_T3], iter4: Iterable[_T4])
-> Iterator[Tuple[_T1, _T2, _T3, _T4]]
•(iter1: Iterable[_T1], iter2: Iterable[_T2], iter3: Iterable[_T3], iter4: Iterable[_T4], iter5: Iterable[_T5])
-> Iterator[Tuple[_T1, _T2, _T3, _T4, _T5]]
•(iter1: Iterable, iter2: Iterable, iter3: Iterable, iter4: Iterable, iter5: Iterable, iter6: Iterable, iterables: Tuple[Iterable, ...])
-> Iterator[Tuple[Any, ...]]
函数的使用
zip(iter1 [,iter2 [...]]) –> zip object
返回一个zip对象,其.__ next __()方法返回一个元组,其中第i个元素来自第i个可迭代参数。 .__ next __()方法一直持续到参数序列中最短的iterable耗尽,然后它引发StopIteration。
3.map函数文档:
builtins
@overload
def map(func: (...) -> _S,
iter1: Iterable,
iter2: Iterable,
iter3: Iterable,
iter4: Iterable,
iter5: Iterable,
iter6: Iterable,
*iterables: Iterable) -> Iterator[_S]
Possible types:
• (func: (_T1) -> _S, iter1: Iterable[_T1])
-> Iterator[_S]
• (func: (_T1, _T2) -> _S, iter1: Iterable[_T1], iter2: Iterable[_T2])
-> Iterator[_S]
• (func: (_T1, _T2, _T3) -> _S, iter1: Iterable[_T1], iter2: Iterable[_T2], iter3: Iterable[_T3])
-> Iterator[_S]
• (func: (_T1, _T2, _T3, _T4) -> _S, iter1: Iterable[_T1], iter2: Iterable[_T2], iter3: Iterable[_T3], iter4: Iterable[_T4])
-> Iterator[_S]
• (func: (_T1, _T2, _T3, _T4, _T5) -> _S, iter1: Iterable[_T1], iter2: Iterable[_T2], iter3: Iterable[_T3], iter4: Iterable[_T4], iter5: Iterable[_T5])
-> Iterator[_S]
• (func: (...) -> _S, iter1: Iterable, iter2: Iterable, iter3: Iterable, iter4: Iterable, iter5: Iterable, iter6: Iterable, iterables: Tuple[Iterable, ...])
-> Iterator[_S]
map(func, *iterables) –> map object
创建一个迭代器,使用每个迭代的参数计算函数。 当最短的可迭代参数用尽时停止。
使用zip和dict的样例代码:
keys = range(11, 21)
values = list('qazxswedcvf')
r = zip(keys, values)
d = dict(r)
print(d)
运行结果:
{11: 'q', 12: 'a', 13: 'z', 14: 'x', 15: 's', 16: 'w', 17: 'e', 18: 'd', 19: 'c', 20: 'v'}
zip将两个列表组成一个字典
使用map和dict样例代码:
def fmap(a,b):
return (a+1, b+'z')
keys = range(1, 11)
values = list('qazxswedcvf')
result = map(fmap, keys, values)
r = dict(result)
print(r)
运行结果:
{2: 'qz', 3: 'az', 4: 'zz', 5: 'xz', 6: 'sz', 7: 'wz', 8: 'ez', 9: 'dz', 10: 'cz', 11: 'vz'}
map可以看做是zip函数的升级版,允许使用函数对keys和values进行处理后再返回生成的字典