自从我用Python写了第一行代码,我就被它的简洁、优秀的可读性和特别流行的一行代码所吸引。下面我将介绍和解释一些Python单行代码。可能有一些你还不知道,但对你未来的Python项目很有用。▍1.交换两个变量#a=4b=5a,bb=b,a#print(a,b)>>5,4让我们通过交换两个变量来做一个简单的开始。这种方法是最简单、最直观的方法之一,无需使用临时变量或应用算术运算。▍2。多变量赋值a,b,c=4,5.5,'Hello'#print(a,b,c)>>4,5.5,hello可以用逗号和变量给变量赋多个值。使用此技术,您可以一次分配多个数据类型。您可以使用列表为变量赋值。下面是一个将列表中的多个值赋值给变量的例子。a,b,*c=[1,2,3,4,5]print(a,b,c)>12[3,4,5]▍3、列表中偶数求和有很多种要做到这一点,但最好和最简单的方法是使用列表索引和求和函数。a=[1,2,3,4,5,6]s=sum([numfornuminaifnum%2==0])print(s)>>12▍4,从列表中删除多个元素del在Python中使用关键字用于从列表中删除值。####Deletingallevena=[1,2,3,4,5]dela[1::2]print(a)>[1,3,5]a▍5,读取文件lst=[line.strip()forlineinopen('data.txt')]print(lst)这里我们使用列表来处理。首先,我们打开一个文本文件,并使用for循环逐行读取。最后,使用strip删除任何不必要的空格。通过使用列表函数,代码更简单、更短。list(open('data.txt'))##Usingwithwillalsoclosethefileafterusewithopen("data.txt")asf:lst=[line.strip()forlineinf]print(lst)▍6。writedatatofilewithopen("data.txt",'a',newline='\n')asf:f.write("Pythonisawsome")上面的代码首先创建一个文件data.txt(如果没有的话),然后它会在文件中写入Pythonisawesome。▍7.创建一个列表lst=[iforiinrange(0,10)]print(lst)>[0,1,2,3,4,5,6,7,8,9]orlst=list(range(0,10))print(lst)我们也可以使用相同的方法来创建一个字符串列表。lst=[("Hello"+i)foriin['Karl','Abhay','Zen']]print(lst)>['HelloKarl','HelloAbhay','HelloZen']▍8,映射列表或类型转换整个列表有时在我们的项目中,我们需要更改列表中所有元素的数据类型。您想到的第一种方法可能是使用循环,然后访问列表中的所有元素并逐个更改元素的数据类型。这种方法很老套,在Python中我们有一个map函数可以为我们完成这项工作。列表(地图(int,['1','2','3']))>[1,2,3]列表(地图(浮动,[1,2,3]))>[1.0,2.0,3.0][float(i)foriin[1,2,3]]>[1.0,2.0,3.0]▍9。创建集合我们用来创建列表的方法也可以用来创建集合。让我们使用平方根方法创建一个包含范围内所有偶数的集合。####Squareofallevennumbersinanrange{x**2forxinrange(10)ifx%2==0}>{0,4,16,36,64}▍10、FizzBuzz在这个测试中,我们需要编写一个程序来打印来自从1到20的数字。但如果是3的倍数,打印Fizz,如果是5的倍数,打印Buzz,如果是3和5的倍数,打印FizzBu??zz,否则打印数字。看起来我们必须使用循环和多个if-else语句。如果你尝试用其他语言来做,你可能需要写10行代码,但是使用Python,我们只需要一行代码就可以实现FizzBu??zz。['FizzBu??zz'ifi%3==0andi%5==0else'Fizz'ifi%3==0else'Buzz'ifi%5==0elseifiinrange(1,20)]在上面的代码中,我们使用列表理解来运行从1到20的循环,然后在循环的每次迭代中我们检查数字是否可以被3或5整除。如果是,那么我们将值替换为Fizz或Buzz,或者将值替换为FizzBu??zz。▍11。回文回文是一个数字或字符串,当它被颠倒时看起来是一样的。text='level'ispalindrome=text==text[::-1]ispalindrome>True▍12、空格分隔的整数到列表lis=list(map(int,input().split()))print(lis)>12345678[1,2,3,4,5,6,7,8]▍13。Lambda函数Lambda函数是一个小型匿名函数。lambda函数可以接受任意数量的参数,但只能接受一个表达式。#Functionthatreturnssquareofanynumbersqr=lambdax:x*xsqr(10)>100▍14,检查列表中数字是否存在num=5ifnumin[1,2,3,4,5]:print('present')>present▍15,打印图案在Python中,我们可以只用一行代码绘制出令人惊叹的图案。n=5print('\n'.join('😀'*iforiinrange(1,n+1)))>😀😀😀😀😀▍16.求阶乘阶乘是一个整数和它下面的所有整数的乘积。importmathn=6math.factorial(n)>720▍17,斐波那契数列是一组数,其中每个数(斐波那契数)都是前两个数之和。最简单的斐波那契数列1,1,2,3,5,8,13等等。可以使用列表理解和for循环在一定范围内创建斐波那契数列。fibo=[0,1][fibo.append(fibo[-2]+fibo[-1])foriinrange(5)]fibo>[0,1,1,2,3,5,8]▍18,素数number素数是指只能被自己和1整除的数,例如:2,3,5,7等。要生成一个范围内的素数,我们可以使用list函数加上filter和lambda来生成素数.list(filter(lambdax:all(x%y!=0foryinrange(2,x)),range(2,13)??))>[2,3,5,7,11]▍19,求最大值findmax=lambdax,y:xifx>yelseyfindmax(5,14)>14ormax(5,14)在上面的代码中,我们使用lambda函数来检查比较条件并根据返回的最大值。或者使用max()内置函数。▍20。线性代数有时我们需要将列表中的元素缩放2到5倍。下面的代码解释了如何做到这一点。defscale(lst,x):return[i*xforiinlst]scale([2,3,4],2)>[4,6,8]▍21,矩阵转置需要将所有行转换为列,反之亦然课程。在Python中,您可以使用zip函数在一行代码中置换矩阵。a=[[1,2,3],[4,5,6],[7,8,9]]transpose=[list(i)foriinzip(*a)]transpose>[[1,4,7],[2,5,8],[3,6,9]]▍22.计数当我们需要知道某个值在文本中出现了多少次时,这是一个重要且有用的用例。在Python中,有一个re库可以为你做这件事。importrelen(re.findall('python','pythonisaprogramminglanguage.pythonispython.'))>3▍23,将文本“pythonisaprogramminglanguage.pythonispython”替换为其他文本。replace(“python”,'Java')>Javaisaprogramminglanguage.JavaisJava▍24、模拟抛硬币这可能不是那么重要,但是当您需要从给定的一组选择中生成一些随机选择时,它会非常有用。importrandomrandom.choice(['Head',"Tail"])>Head▍25,生成组groups=[(a,b)forain['a','b']forbin[1,2,3]]groups>[('a',1),('a',2),('a',3),('b',1),('b',2),('b',3)]
