10 个有趣的 Python 技巧
随着 Python 流行度的不断提高,越来越多的功能变得可用。使用这些功能可以使代码更简洁,行数更少。在本文中,我们将介绍 10 个此类 Python 技巧,这些技巧非常常用且非常有用。
反转列表
我们可以简单地使用 reverse() 函数来反转给定的列表。它处理列表中存在的数字和字符串数据类型。
示例
List = ["Shriya", "Lavina","Sampreeti" ] List.reverse() print(List)
输出
运行以上代码将得到以下结果:
['Sampreeti', 'Lavina', 'Shriya']
按任意顺序打印列表元素
如果您需要按不同顺序打印列表的值,您可以将列表分配给一系列变量,并以编程方式决定要打印列表的顺序。
示例
List = [1,2,3] w, v, t = List print(v, w, t ) print(t, v, w )
输出
运行以上代码将得到以下结果:
(2, 1, 3) (3, 2, 1)
在函数内部使用生成器
我们可以在函数内部直接使用生成器来编写更短、更简洁的代码。在下面的示例中,我们使用生成器作为 sum 函数的参数来查找总和。
示例
sum(i for i in range(10) )
输出
运行以上代码将得到以下结果:
45
使用 zip() 函数
当我们需要连接多个迭代器对象(如列表)以获得单个列表时,可以使用 zip 函数。结果显示每个项目与其来自其他列表的相应项目分组。
示例
Year = (1999, 2003, 2011, 2017) Month = ("Mar", "Jun", "Jan", "Dec") Day = (11,21,13,5) print zip(Year,Month,Day)
输出
运行以上代码将得到以下结果:
[(1999, 'Mar', 11), (2003, 'Jun', 21), (2011, 'Jan', 13), (2017, 'Dec', 5)]
使用一行代码交换两个数字
交换数字通常需要将值存储在临时变量中。但是,使用此 Python 技巧,我们可以使用一行代码完成此操作,而无需使用任何临时变量。
示例
x,y = 11, 34 print x print y x,y = y,x print x print y
输出
运行以上代码将得到以下结果:
11 34 34 11
转置矩阵
转置矩阵涉及将列转换为行。在 Python 中,我们可以通过设计一些循环结构来遍历矩阵中的元素并更改其位置来实现它,或者我们可以使用以下脚本,其中包含 zip 函数以及 * 运算符来解压缩列表,该列表成为给定矩阵的转置。
示例
x = [[31,17], [40 ,51], [13 ,12]] print (zip(*x))
输出
运行以上代码将得到以下结果:
[(31, 40, 13), (17, 51, 12)]
打印字符串 N 次
在任何编程语言中,打印字符串多次的常用方法是设计一个循环。但是 Python 有一个简单的技巧,它涉及在 print 函数内部使用字符串和数字。
示例
str ="Point"; print(str * 3);
输出
运行以上代码将得到以下结果:
PointPointPoint
使用列表切片反转列表元素
列表切片是 Python 中一项非常强大的技术,它也可用于反转列表中元素的顺序。
示例
#Reversing Strings list1 = ["a","b","c","d"] print list1[::-1] # Reversing Numbers list2 = [1,3,6,4,2] print list2[::-1]
输出
运行以上代码将得到以下结果:
['d', 'c', 'b', 'a'] [2, 4, 6, 3, 1]
查找数字的因数
当我们需要数字的因数时,用于某些计算或分析,我们可以设计一个小的循环,它将检查该数字与迭代索引的可除性。
示例
f = 32 print "The factors of",x,"are:" for i in range(1, f + 1): if f % i == 0: print(i)
输出
运行以上代码将得到以下结果:
The factors of 32 are: 1 2 4 8 16 32
检查内存使用情况
我们可以使用 getsizeof() 函数检查我们声明的每个变量消耗的内存量。如下所示,不同的字符串长度将消耗不同的内存量。
示例
import sys a, b, c,d = "abcde" ,"xy", 2, 15.06 print(sys.getsizeof(a)) print(sys.getsizeof(b)) print(sys.getsizeof(c)) print(sys.getsizeof(d))
输出
运行以上代码将得到以下结果:
38 35 24 24