一行 Python 代码实现并行,骚技能!

软件测试test

共 4561字,需浏览 10分钟

 · 2021-04-08

当我用Python写第一行代码的那一天,我着迷于简单性,流行性及其著名的单行代码。

1.交换两个变量

# a = 4 b = 5a,b = b,a# print(a,b) >> 5,4

让我们从一个简单的例子开始,将两个变量相互交换。此方法是最简单直观的方法之一,您无需使用temp变量或应用算术运算就可以编写该方法。

2.多个变量分配

a,b,c = 4,5.5,'Hello'#print(a,b,c) >> 4,5.5,hello

您可以使用逗号和变量来一次将多个值分配给变量。使用此技术,您可以一次分配多个数据类型var。您可以使用列表将值分配给变量。下面是将多个值分配给列表中的不同var的示例。

a,b,*c = [1,2,3,4,5]print(a,b,c)> 1 2 [3,4,5]

3.列表中的偶数之和

可以有很多方法来执行此操作,但是最好和最简单的方法是使用列表索引和求和函数。

a = [1,2,3,4,5,6]s = sum([num for num in a if num%2 == 0])print(s)>> 12

4.从列表中删除多个元素

del 是python中用于从列表中删除值的关键字。

#删除所有偶数a = [1,2,3,4,5]del a[1::2]print(a)>[1, 3, 5]a

5.读取文件

lst = [line.strip() for line in open('data.txt')]print(lst)

在这里,我们使用列表推导。首先,我们打开一个文本文件,并使用for循环,一行一行地读取。最后,使用strip我们将删除所有不必要的空间。仅使用列表功能,有一种更简单,更短的方法。

list(open('data.txt'))#使用with也会在使用后关闭文件with open("data.txt") as f: lst=[line.strip() for line in f]print(lst)

6.将数据写入文件

with open("data.txt",'a',newline='\n') as f: f.write("Python is awsome")

上面的代码将首先创建一个文件data.txt(如果尚不存在),然后将其写入Python is awsome文件。

7.创建list

lst = [i for i in range(0,10)]print(lst)> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]or lst = list(range(0,10))print(lst)
我们也可以使用相同的方法创建一个字符串列表。
lst = [[(“ Hello” + i)for i in ['python''test''yuhan']] print(lst)> ['Hello python''Hello test''Hello yuhan']lst = [("Hello "+i) for i in ['python','test','yuhan']]print(lst)> ['Hello python', 'Hello test', 'Hello yuhan']

8.更新列表或TypeCasting整个列表

有时在我们的项目中,我们需要更改列表中所有元素的数据类型。您想到的第一种方法是使用循环,然后访问列表中的所有元素,然后逐个更改元素的数据类型。此方法适用于python的老派,我们有map一个函数可以为我们完成工作。

list(map(int,['1','2','3']))> [1, 2, 3]list(map(float,[1,2,3]))> [1.0, 2.0, 3.0][float(i) for i in [1,2,3]]> [1.0, 2.0, 3.0]

9.创建集合

我们用于创建列表的方法也可以用于创建集合。让我们使用包含范围内所有偶数的平方根的方法创建一个集合。

#集合内所有偶数的平方{x**2 for x in range(10) if x%2==0}> {0, 4, 16, 36, 64}

10.Fizz Buzz

在本测验中,我们需要编写一个程序来打印从1到100的数字。但是对于三个的倍数,请打印“ Fizz ”而不是数字,对于五个的倍数,请打印“ Buzz ”。

看来我们必须使用循环和多个if-else语句。如果您尝试使用任何其他语言来执行此操作,则可能必须使用python编写多达10行代码,我们可以仅使用一行代码来实现FizzBuzz。

['FizzBuzz' if i%3==0 and i%5==0 else 'Fizz' if i%3==0 else 'Buzz' if i%5==0 else i  for i in range(1,20)]
在上面的代码中,我们使用列表推导来运行从1到20的循环,然后在循环的每次迭
代中,我们检查数字是否可被3或5整除。如果是,那么我们将替换数字相应地使用
Fizz或Buzz,否则我们将其替换FizzBuzz

11.回文

回文是数字或字符串,当相反时,它们看起来相同。

text = 'level'ispalindrome = text == text[::-1]ispalindrome> True

12.用空格分隔的整数到列表

lis = list(map(int, input().split()))print(lis)> 1 2 3 4 5 6 7 8[1, 2, 3, 4, 5, 6, 7, 8]

13. Lambda函数

一个lambda函数是一个小匿名函数lambda函数可以采取任何数量的参数,但只能有一个表达

sqr = lambda x: x * x  ##返回任意数字平方的函数sqr(10)> 100

14.检查列表中数字的存在

num = 5if num in [1,2,3,4,5]:     print('present')> present

15.打印图案

在python中,我们仅需一行代码就可以绘制出惊人的图案。

n = 5print('\n'.join('😀' * i for i in range(1, n + 1)))>😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀

16.查找阶乘

阶乘是整数和其下所有整数的乘积。

import mathn = 6math.factorial(n)> 720

17.斐波那契数列

一系列数字,其中每个数字(斐波纳契数)是前面两个数字的总和。最简单的斐波那契数列1,1,2,3,5,8,13等。我们可以使用列表推导和for循环在范围内创建斐波那契数列。

fibo = [0,1][fibo.append(fibo[-2]+fibo[-1]) for i in range(5)]fibo> [0, 1, 1, 2, 3, 5, 8]

18.质数

质数是只能被其自身和1整除的数字,例如:2、3、5、7等。要生成某个范围内的质数,我们可以使用带filter和lambda的list函数来生成质数。

list(filter(lambda x:all(x % y != 0 for y in range(2, x)), range(2, 13)))> [2, 3, 5, 7, 11]

19.查找最大数

findmax = lambda x,y: x if x > y else y findmax(5,14)> 14or max(5,14)

在上面使用lambda函数的代码中,我们正在检查比较条件,并根据该条件返回最大数。

20.线性代数

有时我们需要将列表的元素缩放到2倍或5倍。该代码说明了如何。

def scale(lst, x): return [i*x for i in lst] scale([2,3,4], 2# call> [4,6,8]

21.Transpose

您需要将所有行更改为列,反之亦然。在python中,您可以使用zip函数在仅一行代码中转置矩阵。

a=[[1,2,3],   [4,5,6],   [7,8,9]] transpose = [list(i) for i in zip(*a)] transpose> [[1, 4, 7], [2, 5, 8], [3, 6, 9]]

22.计算文本出现最多的

当我们需要了解文本中某个出现的次数时,这是一个重要且有用的用例。在python中,我们有一个re库可以为您完成这项工作。

import re; len(re.findall('python','python is a programming language. python is python.'))> 3

23.用其他文本替换文本

"python is a programming language.python is python".replace("python",'Java')> Java is a programming language. Java is Java

24.模拟抛硬币

它可能不是那么重要,但是当您需要从给定的一组选择中生成一些随机选择时,它可能会非常有用。

import random;print(random.choice(['Head',"word"]))

25.生成列表

groups = [(a, b) for a in ['a', 'b'] for b in [1, 2, 3]] groups> [('a', 1), ('a', 2), ('a', 3), ('b', 1), ('b', 2), ('b', 3)]

往期推荐



一种将Python速度提高1000倍的解决方案

Python项目实战——手把手教你使用Django框架实现支付宝付款

手把手教你用Scrapy+Gerapy部署网络爬虫

渗透测试员必备!Top 10免费黑客工具

新手上路必学的Python函数基础知识,全在这里了(多段代码举例)

面试稳了!集齐几千名程序员精选的 100 道性能面试题!

这是我见过最有用的Mysql面试题,面试了无数公司总结的(内附答案)

刷完500道高频面试题,我能去面试大厂了吗?(持续更新)

SeleniumWebDriver运行数据库测试?

Selenium Webdriver上传文件,别傻傻的分不清得3种方法

为什么集成测试被人瞧不起?我不理解还是?



浏览 13
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报