Python 最常用的语句、函数有哪些?

 10 个Python编程中新手不知道的“骚操作”,使用的频率超高!记得点赞,收藏哦!话不多说,进入正题!

1.map 序列映射

对序列中每一个元素调用指定函数,返回迭代器。

>>> 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]

2.filter 过滤序列

过滤掉不符合条件的元素,返回迭代器。

>>> 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]

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')]

4.随机选取序列元素

随机选取序列中的一个元素。

>>> 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]

5.序列元素计数

统计序列每个元素出现的次数。

>>> 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)]

6.字典排序

字典按照键(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}

7.字典合并

>>> 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'}

8.zip 打包

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')]

9.enumerate 遍历

enumerate 函数可以将可迭代对象组合成一个索引序列,这样遍历时就可以同时获取索引与对应的值。

>>> lst = ['a', 'b', 'c']
>>> for index, char in enumerate(lst):
 print(index, char)

 
0 a
1 b
2 c

10.any() & all()

any(iterable)

  • 对于迭代过程中的元素 i,只有所有元素 bool(i) 的结果都为 False,any 的结果才返回 False。
  • 如果迭代是空,返回 False。

all(iterable)

  • 对于迭代过程中的元素 i,如果存在一个 bool(i) 的结果为 False,则 all 结果返回 False。
  • 如果可迭代对象为空,则返回 True。
>>> 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构建企业级大数据平台

猜你喜欢

转载自blog.csdn.net/m0_57290404/article/details/126020816