10个有趣的Python酷技巧
随着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(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