1. 反转字符串
采用切片操作实现字符串的反转:
1 | # Reversing a string using slicing |
2. 实现首字母大写
这个小技巧是让字符串中每个单词的首字母变为大写,通过方法 title()
实现:
1 | my_string = "my name is chaitanya baweja"# using the title() function of string class |
3. 查找字符串中唯一元素
这个技巧是查找字符串中不重复的元素有哪些,通过集合 set
来实现:
1 | my_string = "aavvccccddddeee" |
4. 打印 n 次字符串或者列表
这个技巧通过乘法即可实现打印多次的操作:
1 | n = 3 # number of repetitions |
这个技巧比较有趣的应用是定义一个包含 n 个重复的常数元素的列表,如下所示:
1 | n = 4 |
5. 列表推导式
列表推导式是一种非常优雅的基于其他列表来创建新列表的方法,示例如下所示:
1 | original_list = [1,2,3,4] |
6. 交换两个变量
Python 中交换两个变量的数值是非常简单的,完全不需要第三个变量作为中间值。示例如下所示:
1 | a = 1 |
7. 字符串分割为一串子字符串列表
采用 split()
方法可以将字符串分割为一个包含其子字符串的列表,示例如下所示:
1 | string_1 = "My name is Chaitanya Baweja" |
8. 合并多个字符串为一个字符串
采用 join()
方法可以将多个字符串合并为一个字符串。这相当于上一条技巧的反向操作。示例如下所示:
1 | list_of_strings = ['My', 'name', 'is', 'Chaitanya', 'Baweja'] |
9. 判断字符串是否回文
通过反转字符串,再和原字符串比较,可以判断是否为回文,示例如下:
1 | my_string = "abcba" |
10. 统计列表元素的个数
有多种方式可以实现这个技巧,但我最喜欢的是采用 Counter
类。
Counter
可以统计给定列表中每个元素的个数,返回一个字典格式。示例如下,其中most_common()
方法可以返回列表中数量最多的元素
1 | # finding frequency of each element in a list |
11. 判断两个字符串是否是字谜(Anagrams)
字谜(Anagrams)是指将一个单词打乱其字母顺序,重新排列为一个新的单词。
Counter
正好可以用于解决这个问题,因为如果两个字符串的 Counter
对象相等,就表示它们就是字谜,因为包含相同元素且元素数量都相同。
示例如下:
1 | from collections import Counter |
12. 采用 try-except-else 语句
Python 中处理错误异常可以简单采用 try-except
语句,而再添加一个 else
语句会更加有帮助,它是在没有发生异常时,执行完 try
语句后运行的语句。
此外,如果需要运行是否发现异常的都需要执行的代码,可以采用 finally
,示例如下:
1 | a, b = 1,0 |
13. 采用 Enumerate 来获取索引值
在迭代列表的时候,可以采用 enumerate
来得到索引值,示例如下:
1 | my_list = ['a', 'b', 'c', 'd', 'e'] |
注意,这里还可以指定索引开始的范围,只需要在调用 enumerate()
时候,添加一个参数,如下所示:
1 | my_list = ['a', 'b', 'c', 'd', 'e'] |
14. 检查一个对象的内存使用量
可以采用 sys.getsizeof()
检查,示例如下:
1 | import sys |
15. 合并两个字典
在 Python2 版本的时候可以采用 update()
方法实现合并字典的操作,但在 Python3.5 后的版本,可以采用新的方式实现,操作更加简单,如下所示:
1 | dict_1 = {'apple': 9, 'banana': 6} |
16. 计算代码执行时间
采用 time
模块来计算一段代码的执行时间,例子如下:
1 | import time |
17. 展平元素为列表的列表
有时候并确定一个列表中的深度有多深,所以你只想简单的将所有元素都放在一个列表中,实现技巧代码如下所示:
1 | from iteration_utilities import deepflatten |
如果是数组的话,可以采用 Numpy 方式。
18. 从列表中采样
采用 random
模块可以对一个列表随机采样 n
个元素,示例如下所示:
1 | import randommy_list = ['a', 'b', 'c', 'd', 'e'] |
另外,在 Python 3 中推荐采用 secrets
模块,基于密码学的目的来随机生成样本,示例如下:
1 | import secrets # imports secure module. |
19. 数字化
下面是一个例子,将一个数字转换为一个数字列表的形式:
1 | num = 123456 |
20. 检查唯一性
下面的代码是用于判断一个列表的所有元素是否都是唯一没有重复的:
1 | def unique(l): |
- 本文作者: Raphael_Li
- 本文链接: https://lifei-2019.github.io/python小技巧/
- 版权声明: 本博客所有文章除特别声明外,均采用 Apache License 2.0 许可协议。转载请注明出处!