set,zip,map这三个函数都属于python的内置函数,有着强大的功能。
1.set()函数
语法:
1 | set(iterable) |
参数:
iterable:一个序列或其他的可迭代的对象
功能:
创建一个无序不重复元素的集合 ,可进行关系测试,删除重复数据,还可以计算交集、差集、并集等。其返回值为一个新的集合对象。
例如:
1 | a = '123456' |
2.zip()函数
1)zip含有两种,其中一种是zip()——压缩,另一种是zip(* )——解压。
2)zip 函数在 Python 2 和 Python 3 中是有所不同的:
①在 Python 3.x 中为了减少内存,zip() 返回的是一个对象object。如果需展示列表,需手动 list() 转换。
②在Python2.x中返回的是一个列表list。
语法:
1 | zip([iterable, ...]) |
参数:
iterable:一个序列或其他的可迭代的对象。
功能:
将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同。(可利用 * 号操作符,可以将元组解压为列表。)
在python2.7版本下
1 | str = (["a","b","c"], ["1", "2", "3","4"]) |
在python3.7版本下
1 | str = (["a","b","c"], ["1", "2", "3","4"]) |
在LeetCode上有一道题(14.Longest Common Prefix),使用set()与zip()函数是最快的解决方法,时间复杂度也是最小的。https://leetcode.com/problems/longest-common-prefix/ 。下面贴出解答方法:
1 | def longestCommonPrefix(strs): |
调用longestCommonPrefix()函数:
1 | str = ["flower","flow","flight"] |
下面是加了print的运行结果:
1 | [('flower',), ('flow',), ('flight',)] |
3.map()函数
map()函数会根据提供的函数function对指定序列iterable做映射。
语法:
1 | map(function, iterable, ...) |
参数:
function :函数
iterable :一个或多个序列
功能:
对iterable里面的元素都会带入到function函数进行运行,得到一个对象。
在python3.x中,返回的是迭代器。
1 | def fun(x): |
在python2.x中,返回的是一个列表。
1 | ## 实现数组的转置 |