Python编程中新手不知道的“骚操作”,使用的频率超高!记得点赞,收藏哦!话不多说,进入正题!对序列中每一个元素调用指定函数,返回迭代器。
- >>> def func(x):
- return x ** 2
-
- >>> list(map(func, [1,2,3]))
- [1, 4, 9]
使用 lambda 表达式。
- >>> list(map(lambda x: x ** 2, [1, 2, 3]))
- [1, 4, 9]
过滤掉不符合条件的元素,返回迭代器。
- >>> def func(x):
- return x % 3 == 0
-
- >>> list(filter(func, [1, 2 ,3]))
- [3]
使用 lambda 表达式。
- >>> list(filter(lambda x: x % 3 == 0, [1, 2, 3]))
- [3]
获取两个序列每个元素两两组合的结果。
- >>> list1 = ['a', 'b']
- >>> list2 = ['1', '2']
- >>> [(m, n) for m in list1 for n in list2]
- [('a', '1'), ('a', '2'), ('b', '1'), ('b', '2')]
- >>> from itertools import product
- >>> list(product(list1, list2))
- [('a', '1'), ('a', '2'), ('b', '1'), ('b', '2')]
随机选取序列中的一个元素。
- >>> from random import choice
- >>> lst = [1, 2, 3, 4]
- >>> choice(lst)
- 3
随机选取序列中的多个元素(可重复)。k 值指定数量。
- >>> from random import choices
- >>> lst = [1, 2, 3, 4]
- >>> choices(lst, k=3)
- [4, 3, 4]
随机选取序列中的多个元素(不重复)。k 值指定数量。
- >>> from random import sample
- >>> lst = [1, 2, 3, 4]
- >>> sample(lst, k=3)
- [4, 3, 2]
统计序列每个元素出现的次数。
- >>> from collections import Counter
- >>> s = 'python+py'
- >>> counter = Counter(s)
- >>> counter
- Counter({'p': 2, 'y': 2, 't': 1, 'h': 1, 'o': 1, 'n': 1, '+': 1})
返回的结果类似字典,可以使用字典的相关方法。
- >>> counter.keys()
- dict_keys(['p', 'y', 't', 'h', 'o', 'n', '+'])
- >>> counter.values()
- dict_values([2, 2, 1, 1, 1, 1, 1])
- >>> counter.items()
- dict_items([('p', 2), ('y', 2), ('t', 1), ('h', 1), ('o', 1), ('n', 1), ('+', 1)])
统计出现次数最多的两个元素。
- >>> counter.most_common(2)
- [('p', 2), ('y', 2)]
字典按照键(key)降序排序。
- >>> dic = {'d': 2, 'c': 1, 'a': 3, 'b': 4}
- >>> sort_by_key = sorted(dic.items(), key=lambda x: x[0], reverse=False)
- >>> {key: value for key, value in sort_by_key}
- {'a': 3, 'b': 4, 'c': 1, 'd': 2}
字典按照值(value)降序排序。
- >>> dic = {'d': 2, 'c': 1, 'a': 3, 'b': 4}
- >>> sort_by_value = sorted(dic.items(), key=lambda x: x[1], reverse=False)
- >>> {key: value for key, value in sort_by_value}
- {'c': 1, 'd': 2, 'a': 3, 'b': 4}
- >>> dict1 = {'name': '静香', 'age': 18}
- >>> dict2 = {'name': '静香', 'sex': 'female'}
1)update() 更新字典。
- >>> dict1.update(dict2)
- >>> dict1
- {'name': '静香', 'age': 18, 'sex': 'female'}
2)字典推导式
- >>> {k: v for dic in [dict1, dict2] for k, v in dic.items()}
- {'name': '静香', 'age': 18, 'sex': 'female'}
3)元素拼接
- >>> dict(list(dict1.items()) + list(dict2.items()))
- {'name': '静香', 'age': 18, 'sex': 'female'}
4)chain() 可以将序列连接,返回可迭代对象。
- from itertools import chain
- >>> dict(chain(dict1.items(), dict2.items()))
- {'name': '静香', 'age': 18, 'sex': 'female'}
5)collections.ChainMap 可以将多个字典或映射,并将它们合并。
- >>> from collections import ChainMap
- >>> dict(ChainMap(dict2, dict1))
- {'name': '静香', 'age': 18, 'sex': 'female'}
6)在 Python3.5 以上的版本中,可以通过字典解包进行合并。
- >>> {**dict1, **dict2}
- {'name': '静香', 'age': 18, 'sex': 'female'}
zip() 将序列中对应的元素打包成一个个的元组,然后返回由这些元组组成的迭代器。
如果序列的元素个数不一致,则返回列表长度与最短的对象相同。
- >>> list1 = [1, 2, 3]
- >>> list2 = [4, 5, 6]
- >>> list3 = ['a', 'b', 'c', 'd']
- >>> res = zip(list1, list2)
- >>> res
- <zip object at 0x0000013C13F62200>
- >>> list(res)
- [(1, 4), (2, 5), (3, 6)]
- >>> list(zip(list2, list3))
- [(4, 'a'), (5, 'b'), (6, 'c')]
enumerate 函数可以将可迭代对象组合成一个索引序列,这样遍历时就可以同时获取索引与对应的值。
- >>> lst = ['a', 'b', 'c']
- >>> for index, char in enumerate(lst):
- print(index, char)
-
-
- 0 a
- 1 b
- 2 c
any(iterable)
any 的结果才返回 False。all(iterable)
all 结果返回 False。- >>> any('')
- False
- >>> any([])
- False
- >>> any([1, 0, ''])
- True
- >>> any([0, '', []])
- False
- >>> all([])
- True
- >>> all([1, 0, ''])
- False
- >>> all([1, 2, 3])
- True
最新教程
2022年hadoop3.x入门

2022最新大数据Hadoop入门视频教程,最适合零基础自学的大数据Hadoop教程
2022年大数据spark3.2入门Spark全套视频教程,4天spark3.2快速入门到精通,全网首套基于Python语言的spark教程
2022年MySQL基础入门2022最新MySQL知识精讲+mysql实战案例_零基础mysql数据库入门到高级全套教程
Python+大数据开发
MySQL数据库:2022最新MySQL知识精讲+mysql实战案例_零基础mysql数据库入门到高级全套教程
Hadoop入门:2022最新大数据Hadoop入门视频教程,最适合零基础自学的大数据Hadoop教程
Hive数仓项目:大数据项目实战教程_大数据企业级离线数据仓库,在线教育项目实战(Hive数仓项目完整流程)
PB内存计算
Python入门:全套Python教程_Python基础入门视频教程,零基础小白自学Python必备教程
Python编程进阶:Python高级语法进阶教程_python多任务及网络编程,从零搭建网站全套教程
spark3.2从基础到精通:Spark全套视频教程,4天spark3.2快速入门到精通,全网首套基于Python语言的spark教程
Hive+Spark离线数仓工业项目实战:全网首次披露大数据Spark离线数仓工业项目实战,Hive+Spark构建企业级大数据平台