写点什么

25 个有用的 Python 代码段

  • 2020-01-06
  • 本文字数:2713 字

    阅读完需:约 9 分钟

25个有用的 Python 代码段


Python 是一种通用的高级编程语言。用它可以做许多事,比如开发桌面 GUI 应用程序、网站和 Web 应用程序等。


并且,通过处理常见的编程任务,Python 能让开发者专注应用程序的核心功能。此外,Python 语言的简单语法规则进一步简化了代码库的可读性和应用程序的可维护性。


与其他编程语言相比,Python 的优势在于:


  1. 与主要平台和操作系统兼容;

  2. 有许多开源框架和工具;

  3. 代码具备可读性和可维护性;

  4. 健壮的标准库;

  5. 标准测试驱动开发


在本文,我将介绍 25 个简短且有用的代码段,它们可以帮你完成日常任务。

1.在两个变量之间交换值

在其他语言中,要在两个变量间交换值而不是用第三个变量,我们要么使用算术运算符,要么使用位异或(Bitwise XOR)。在 Python 中,它就简单多了,如下所示。


a = 5b = 10                   a,b = b,aprint(a) # 10print(b) # 5
复制代码

2. 检查给定的数字是否为偶数

如果给定的数字为偶数,则如下函数返回 Ture,否则返回 False


def is_even(num):    return num % 2 == 0    is_even(10) # True
复制代码

3. 将多行字符串拆分为行列表

以下函数可用于将多行字符串拆分为行列表。


def split_lines(s):    return s.split('\n')split_lines('50\n python\n snippets') # ['50', ' python', ' snippets']
复制代码

4. 查找对象使用的内存

标准库的 sys 模块提供了 getsizeof() 函数。该函数接受一个对象,调用对象的 sizeof() 方法,并返回结果,这样做能使对象可检查。


import sysprint(sys.getsizeof(5)) # 28print(sys.getsizeof("Python")) # 55
复制代码

5. 反转字符串

Python 字符串库不像其他 Python 容器(如 list) 那样支持内置的 reverse()。反转字符串有很多方法,其中最简单的方法是使用切片运算符(slicing operator)。


language = "python"reversed_language = language[::-1]print(reversed_language) # nohtyp
复制代码

6. 打印字符串 n 次

在不使用循环的情况下,要打印一个字符串 n 次是非常容易的,如下所示。


def repeat(string, n):    return (string * n)    repeat('python', 3) # pythonpythonpython
复制代码

7. 检查字符串是否为回文

以下函数用于检查字符串是否为回文。


def palindrome(string):    return string == string[::-1]    palindrome('python') # False
复制代码

8. 将字符串列表合并为单个字符串

下面的代码段将字符串列表组合成单个字符串。


strings = ['50', 'python', 'snippets']print(','.join(strings)) # 50,python,snippets
复制代码

9. 查找列表的第一个元素

此函数返回所传递列表的第一个元素。


def head(list):  return list[0]  print(head([1, 2, 3, 4, 5])) # 1
复制代码

10. 查找存在于两个列表中任一列表存在的元素

此函数返回两个列表中任一列表中的每个元素。


def union(a,b):    return list(set(a + b))union([1, 2, 3, 4, 5], [6, 2, 8, 1, 4]) # [1,2,3,4,5,6,8]
复制代码

11. 查找给定列表中的所有唯一元素

此函数返回给定列表中存在的唯一元素。


def unique_elements(numbers):    return list(set(numbers))    unique_elements([1, 2, 3, 2, 4]) # [1, 2, 3, 4]
复制代码

12. 求一组数字的平均值

此函数返回列表中两个或多个数字的平均值。


def average(*args):  return sum(args, 0.0) / len(args)  average(5, 8, 2) # 5.0
复制代码

13. 检查列表是否包含所有唯一值

此函数检查列表中的所有元素是否都是唯一的。


def unique(list):    if len(list)==len(set(list)):        print("All elements are unique")    else:        print("List has duplicates")        unique([1,2,3,4,5]) # All elements are unique
复制代码

14. 跟踪列表中元素的频率

Python 计数器跟踪容器中每个元素的频率。 Counter() 返回一个以元素为键、以其出现频率为值的字典。


from collections import Counterlist = [1, 2, 3, 2, 4, 3, 2, 3]count = Counter(list)print(count) # {2: 3, 3: 3, 1: 1, 4: 1}
复制代码

15. 查找列表中最常用的元素

此函数返回列表中出现频率最高的元素。


def most_frequent(list):    return max(set(list), key = list.count)    numbers = [1, 2, 3, 2, 4, 3, 1, 3]most_frequent(numbers) # 3
复制代码

16. 将角度转换为弧度

下面的函数用于将角度转换为弧度。


import mathdef degrees_to_radians(deg):    return (deg * math.pi) / 180.0     degrees_to_radians(90) # 1.5707963267948966
复制代码

17. 计算执行一段代码所需的时间

以下代码段用于计算执行一段代码所需的时间。


import timestart_time = time.time()a,b = 5,10c = a+bend_time = time.time()time_taken = (end_time- start_time)*(10**6)print("Time taken in micro_seconds:", time_taken) # Time taken in micro_seconds: 39.577484130859375
复制代码

18. 查找数字列表的最大公约数

此函数计算数字列表中的最大公约数。


from functools import reduceimport mathdef gcd(numbers):    return reduce(math.gcd, numbers)gcd([24,108,90]) # 6
复制代码

19. 查找字符串中的唯一字符

此代码段可用于查找字符串中的所有唯一字符。


string = "abcbcabdb"   unique = set(string)new_string = ''.join(unique)print(new_string) # abcd
复制代码

20. 使用 lambda 函数

Lambda 是一个匿名函数,它只能保存一个表达式。


x = lambda a, b, c : a + b + cprint(x(5, 10, 20)) # 35
复制代码

21. 使用映射函数

此函数在将给定函数应用于给定迭代的每个项(列表、元组等)之后,返回一个结果列表。


def multiply(n):     return n * n     list = (1, 2, 3) result = map(multiply, list) print(list(result)) # {1, 4, 9}
复制代码

22. 使用筛选函数

此函数在通过一个函数过滤给定的序列,测试序列中的每个元素是否为真。


arr = [1, 2, 3, 4, 5]arr = list(filter(lambda x : x%2 == 0, arr))print (arr) # [2, 4]
复制代码

23. 使用列表解析

列表解析(list comprehensions)为我们提供了一种基于某些迭代创建列表的简单方法。在创建过程中,可以将来自可迭代的元素有条件地包含到新列表中,并根据需要进行转换。


numbers = [1, 2, 3]squares = [number**2 for number in numbers]print(squares) # [1, 4, 9]
复制代码

24. 使用切片运算符

切片(Slicing)用于从给定序列中提取连续的元素序列或子序列。下面的函数用于连接两个切片运算的结果。首先,我们将列表从索引 d 切片到末尾,然后从开头切片到索引 d


def rotate(arr, d):    return arr[d:] + arr[:d]    if __name__ == '__main__':    arr = [1, 2, 3, 4, 5]    arr = rotate(arr, 2)    print (arr) # [3, 4, 5, 1, 2]
复制代码

25. 使用函数链式调用

最后的代码段用于从一行调用多个函数并计算结果。


def add(a, b):    return a + bdef subtract(a, b):    return a - ba, b = 5, 10print((subtract if a > b else add)(a, b)) # 15
复制代码


英文原文:


25 Useful Python Snippets to Help in Your Day-to-Day Work


2020-01-06 11:245013
用户头像

发布了 536 篇内容, 共 270.8 次阅读, 收获喜欢 1561 次。

关注

评论

发布
暂无评论
发现更多内容

这个让全网眼红的红利行业,还需要人才吗

千锋IT教育

人工智能应用落地的两难

felix

人工智能 开放api 算法模型

基于 Flink 构建大规模实时风控系统在阿里巴巴的落地

Apache Flink

大数据 flink 编程 流计算 实时计算

2022“易观之星”年度奖项启动征集,发现卓越数智力量

易观分析

报名 数智化 易观之星

DR600VX-Atheros-QCA9880-2T2R-MIMO-802.11ac-Mini-PCIe-Wi-Fi-Module-Dual-Band-2.4GHz-5GHz

wallys-wifi6

天翼云为这场酷炫的元宇宙会议做了这件事

天翼云开发者社区

RT-Thread记录(十二、I/O 设备模型之UART设备 — 使用测试)

矜辰所致

RT-Thread 8月月更

云成本支出不受控制怎么办?教您一招!

行云管家

云计算 云资源 云成本

“客户体验管理”这么热,究竟能给企业带来什么变化?

科技怪咖

如何让工业制造拥有更强的“数字内核”?

天翼云开发者社区

DR882-Qualcomm-Atheros-QCA9882-2T2R-MIMO-802.11ac-Mini-PCIe-Wi-Fi-Module-5G-high-powe

wallys-wifi6

今日头条三天点击破亿!四天精通springcloud微服务架构

退休的汤姆

社招 java架构师 秋招 #java spring、

程序员被京东淘汰转身痛哭,HR扎心了

千锋IT教育

基于 Flink x TiDB,智慧芽打造实时分析新方案

Apache Flink

大数据 flink 编程 流计算 实时计算

语音交友APP:搭建部署流程及主要功能介绍

开源直播系统源码

软件开发 直播系统源码 语音直播系统

大咖说 | 云采销助力中小企业获客提升300%,交易提效58%

大咖说

数字化升级 云采销

攻击面管理:企业向主动安全转变的开始

SEAL安全

攻击技术 黑客攻击 软件供应链安全

搜索引擎分布式系统思考实践

得物技术

搜索引擎 分布式系统

MobTech ShareSDK Android端快速集成

MobTech袤博科技

android Android Studio SDK 教程

使用 yo 命令行向导创建 SAP UI5 应用

汪子熙

前端开发 SAP SAP UI5 ui5 8月月更

大厂面试真的很难吗?字节跳动3面+腾讯6面一次过,谈谈我的大厂面经

程序知音

Java java面试 程序员面试 后端技术 八股文

工程师如何拥抱数字化转型?

星策开源社区

工程师 产业数字化 数字化时代 智能化转型

Zebec社区利好频传,Galaxy Project上领取专属Zebec OAT

西柚子

图灵访谈 | Vue.js官方团队成员霍春阳:跨专业做程序员,是什么感受?

图灵教育

金山云团队分享 | 5000字读懂Presto如何与Alluxio搭配

Alluxio

金山云 presto Alluxio 大数据 开源 8月月更

Golang 使用过程中遇到的小技巧(一)

皮特王

天翼云TeleDB系列产品升级发布会开幕在即,精彩邀您共鉴

天翼云开发者社区

Zebec社区利好频传,Galaxy Project上领取专属Zebec OAT

小哈区块

ONES 团队版50人以下免费,助力中小企业「弯道超车」

万事ONES

什么是外网?外网需要做等保吗?与内网的区别是什么?

行云管家

等保 等级保护 内网 外网

百度App 低端机优化-启动性能优化(概述篇)

百度Geek说

性能优化 运维 服务器

25个有用的 Python 代码段_架构_Abhinav Sagar_InfoQ精选文章