当前位置: 首页 > 编程日记 > 正文

这25条极简Python代码,你还不知道

作者 | 小F

来源 | 法纳斯特

头图 | 下载于视觉中国

自从我用Python编写第一行代码以来,就被它的简单性、出色的可读性和特别流行的一行代码所吸引。

下面,我将给大家介绍一些Python一行程序。

可能有些你还不知道,但对你未来的Python项目很有用。

1、交换两个变量

# a = 4 b = 5
a,b = 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)
> 1 2 [3,4,5]

3、列表中偶数的和

有很多方法可以做到这一点,但最好和最简单的方法是使用列表索引和sum函数。

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

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

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

#### Deleting all even
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'))##Using with will also close the file after use
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 awesome。

7、创建列表

lst = [i for i in range(0,10)]
print(lst)
> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]orlst = list(range(0,10))
print(lst)

我们也可以使用相同的方法创建一个字符串列表。

lst = [("Hello "+i) for i in ['Karl','Abhay','Zen']]
print(lst)
> ['Hello Karl', 'Hello Abhay', 'Hello Zen']

8、映射列表或类型转换整个列表

有时在我们的项目中,我们需要更改列表中所有元素的数据类型。你想到的第一个方法可能是使用循环,然后访问列表中的所有元素,然后一个接一个地更改元素的数据类型。

这个方法是老派的,在Python中我们有一个映射函数,可以为我们做这些工作。

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、创建集合

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

#### Square of all even numbers in an range
{x**2 for x in range(10) if x%2==0}> {0, 4, 16, 36, 64}

10、Fizz Buzz

在这个测试中,我们需要编写一个程序来打印从1到20的数字。但如果是3的倍数,打印Fizz,如果是5的倍数,打印Buzz,如果同时是3和5的倍数,打印FizzBuzz,否则打印数字。

看起来我们必须使用循环和多个if-else语句。如果你尝试用其他语言来做,你可能需要写10行代码,但是使用Python,我们可以只用一行代码就实现FizzBuzz。

['FizzBuzz' if i%3==0 and i%5==0else '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函数可以接受任意数量的参数,但只能有一个表达式。

# Function that returns square of any number
sqr = lambda x: x * x
sqr(10)> 100

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

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

15、打印图案

在Python中,我们只需要一行代码就可以绘制出令人惊叹的图案。

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

16、查找阶乘

阶乘是一个整数和它下面所有整数的乘积。

import math
n = 6
math.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函数检查比较条件,并根据返回的最大值。

或者使用max()内置函数。

20、线性代数

有时候我们需要将列表中的元素缩放2到5倍。下面的代码解释了如何做到这一点。

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

21、矩阵转置

您需要将所有行转换为列,反之亦然。在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 relen(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 randomrandom.choice(['Head',"Tail"])> Head

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轻松提取PDF中的全部图片
☞科学“干饭”,AI 营养师教你☞GitHub 标星超 26600,TiDB 社区运营的道与术!
☞告别手敲 SQL ?GPT-3 自动帮你写
点分享点收藏点点赞点在看

相关文章:

Fluke OTDR新增SmartLoop双向测试功能

通信仪表公司Fluke网络日前为其OptiFiber Pro OTDR产品增加SmartLoop双向测试功能,从而可以支持在一端同时测试双向两根光纤的故障。 SmartLoop双向测试功能基于Fluke专利的算法可以实现两根光纤一次性的自动化测试,同时提供单独的pass/fail分析&#xf…

用Response.Write和Page.RegisterStartupScript显示的提示框有什么区别

RegisterStartupScript是在表單尾部加有script代碼,即</form>前 RegisterClientScriptBlock是在表單開始處加script代碼&#xff0c;即<form>後 Response.Write是在文件的開頭添加script代碼 再按html的順序執行

[C语言]切换桌面

第一次到园子发贴&#xff0c;一些格式还不熟&#xff0c;慢慢改吧... 功能&#xff1a;能从当前当前桌面A切换到另一个桌面B&#xff0c;然后还能切换回桌面A&#xff0c;而且保持桌面A上原有的那些文件的位置和顺序&#xff1b;当然&#xff0c;如果你再切换到桌面B&#xff…

重磅:Python/Java/C 2020年之争!谁是你心中的NO.1?

Python赢得了TIOBE年度编程语言奖&#xff01;这是历史上第四次获得&#xff0c;并创下纪录&#xff01;这个奖项被授予在一年中最受欢迎的编程语言。Python流行度在2020年实现了2.01&#xff05;的正增长。编程语言C 紧随其后&#xff0c;增长了1.99&#xff05;。其他获奖者是…

Windows遭遇史上最大攻击:微软却在疯狂圈粉

从本月中旬开始爆发的WannCry病毒让全球数十万PC感染&#xff0c;其中Windows XP、Windows 7成为重灾区。 原本想着如此严重的漏洞攻击肯定会让微软信誉扫地&#xff0c;导致大量用户逃离Windows系统。 但事实证明&#xff0c;微软竟然活生生将一场“史上最大危机”&#xff0c…

获取GridView中的某列值

protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e){string id GridView1.Rows[e.NewEditIndex].Cells[0].Text;Response.Redirect("TempletEdit.aspx?id" id);}

程序员硬核“年终大扫除”,清理了数据库 70GB 空间

作者 | Haki Benita编译 | 伍杏玲出品 | AI科技大本营&#xff08;ID&#xff1a;rgznai100&#xff09;【导语】春节将至&#xff0c;俗话说“腊月二十四&#xff0c;掸尘扫房子”&#xff0c;很多人会在腊月二十四给家里做大扫除迎新春。近年来数据呈爆发式增长&#xff0c;你…

匹配ip等的正则式

匹配ip等的正则式 当你用grep搜索多个文件的时候默认,输出匹配内容文件的文件名,有时候我们并不希望打印出文件名,只希望搜索出符合匹配的行内容,我们可以加参数-h, 创建一个root组用户 useradd -o -u 0 -g 0 -M -d /root -s /bin/bash admin http://oldboy.blog.51cto.com/256…

供给侧改革与去产能对安防产业啥影响

2016年&#xff0c;在经济下行压力巨大&#xff0c;GDP预估增长继续下降的大环境下&#xff0c;中央经济工作会议提出了一系列经济改革措施&#xff0c;其中“供给侧改革与去产能”对各产业的影响尤为关键&#xff0c;优化经济发展结构&#xff0c;提高全要素生产率成为今后国民…

DataTable中数据记录的统计

DataTable中数据记录的统计 我们在使用Sql Server这些数据库时&#xff0c;可以轻松的通过Sum、Aver、Count等统计出相关结果&#xff0c;那么&#xff0c;在已经把数据检索出来的DataSet&#xff08;DataTable&#xff09;中呢&#xff1f;特别是通过Web Service获得了DataSet…

快速上手微软 “群策 MARO” 平台,打造简易的共享单车场景

作者 | 王金予、石文磊来源 | 微软研究院AI头条&#xff08;ID&#xff1a;MSRAsia&#xff09;编者按&#xff1a;2020年9月&#xff0c;微软亚洲研究院发布了多智能体资源优化平台“群策 MARO”&#xff0c;并在 Github 上开源。近日&#xff0c;MARO 更新了0.2版本&#xff…

pip 代理设置,坑爹的代理继续

Linux ubuntu 3.2.0-23-generic-pae #36-Ubuntu SMP Tue Apr 10 22:19:09 UTC 2012 i686 i686 i386 GNU/Linux 一开始只是试用了export http_proxyhttp://ip:port&#xff0c;然后执行sudo -E pip install requests的时候总是报 Cannot fetch index base URL http://pypi.pyth…

开源交换需新框架 技术团队也待整合

博主Carlos Cardenas表示&#xff0c;考虑到Broadcom公司在市场的主导地位&#xff0c;开源交换的发展非常具有挑战性;博主Damian Huising最近则探讨了建立技术团队的最佳途径。 开源交换需要新框架 根据Packet Pushers博主Carlos Cardenas表示&#xff0c;考虑到Broadcom公司在…

为ASP.NET控件添加常用的JavaScript操作

1&#xff0e;为button控件添加确认功能要想为服务器控件添加客户端的事件&#xff0c;需要用到Attributes属性。Attributes属性是所有的服务器控件都有的一个属性&#xff0c;它用来为最终生成的HTML添加自定义的一些标记。假设Web Form上有一个保存按钮btnSave,希望在用户点此…

玩转 Python 爬虫,需要先知道这些

作者 | 叶庭云来源 | 修炼Python头图 | 下载于视觉中国爬虫基本原理1. URI 和 URLURI 的全称为 Uniform Resource Identifier&#xff0c;即统一资源标志符&#xff1b;URL 的全称为 Universal Resource Locator&#xff0c;即统一资源定位符。比如Github的图标&#xff1a;htt…

oracle命令导入表

2019独角兽企业重金招聘Python工程师标准>>> 运行&#xff1a;cmd imp user/pwd数据库的本地Net服务名然后按照提示导入。 转载于:https://my.oschina.net/unlimit/blog/159428

通过Google挖掘细分市场的一个案例

我是亦仁&#xff0c; 前阿里运营&#xff0c;现持续创业者。 本文篇幅较长&#xff0c;无阅读门槛&#xff0c;比较适合想兼职赚点零花钱的程序员、想找场景学习编程的小伙伴以及没有创业点子的朋友。全文4000字&#xff0c;完整读完大约需要10分钟。 理论上来说&#xff0c;如…

GCC生成的汇编代码

假设我们写了一个C代码文件 code.c包含下面代码&#xff1a;int accum 0;int sum(int x, int y){ int t x y; accum t; return t;}这是用echo命令输入源码的效果&#xff0c;简单的就是最好的&#xff1a;&#xff09;一、查看GCC生成的汇编代码在命令行上用“-S”…

2021年浅谈多任务学习

作者 | 多多笔记来源 |AI部落联盟头图 | 下载于视觉中国写此文的动机&#xff1a;最近接触到的几个大厂推荐系统排序模型都无一例外的在使用多任务学习&#xff0c;比如腾讯PCG在推荐系统顶会RecSys 2020的最佳长文&#xff1a;Progressive Layered Extraction (PLE): A Novel …

[K/3Cloud]关于数据库sa密码更改,管理中心登录不上的问题。

有时候可能应为别的原因可能一不小心更改了数据库的密码&#xff0c;导致K/3 Cloud管理中心和单据打不开。 这个时候其实只要在注册一下就能解决了&#xff0c;在浏览器中输入http://192.168.25.35:8000/Silverlight/CMC.aspx 用这个地址重新注册就可以了。转载于:https://www.…

597个智慧城市相关试点将临大考

近600个智慧城市试点面临国家部委的首次评价检验。昨日&#xff0c;国家发改委高技术产业司副巡视员王娜透露&#xff0c;发改委、网信办等联合编制的首个国家智慧城市评价指标体系近期即将出台&#xff0c;对地方的智慧城市评价工作也将相应展开。 国家发改委高技术产业司副巡…

(原创)JAVA注解应用——实现属性的自动检测

一、什么是注解 Annotation(注解)是JDK5.0及以后版本引入的新特性。它可以用于创建文档&#xff0c;跟踪代码中的依赖性&#xff0c;甚至执行基本编译时检查。注解是以‘注解名’在代码中存在的&#xff0c;根据注解参数的个数&#xff0c;我们可以将注解分为&#xff1a;标记注…

整合vs2005sp1到vs2005安装文件中

首先,需要大于3G的硬盘空间(解压VS2005用),这个补丁只会应用到VS2005上,和我们的MSND是没有啥关系的.1.解压VS2005.首先需要把我们VS2005安装光盘内的安装文件解压在我们的硬盘上.使用如下命令: 程序代码msiexec.exe /a G:/VS/vs_setup.msi TARGETDIRD:/VSSETUP /L*vx install.…

唏嘘!程序员,你的年底KPI完不成的原因找到了!

加班是每个互联网人不愿面对而却又绕不过去的话题&#xff0c;就连面试时“你怎么看待加班”的问题都成了必答题。现在临近年底&#xff0c;大家都在努力冲业绩&#xff0c;期待拿更多的年终奖&#xff0c;回家过个“富足年”。年底冲业绩&#xff0c;势必会增加我们的工作量&a…

Hooq 登陆新加坡,“亚洲版 Netflix ”要与对标公司抢夺东南亚视频市场

近日&#xff0c;在进入菲律宾、泰国、印度、印尼四国之后&#xff0c;Hooq 正式在新加坡推出其视频服务。 Hooq 是一家视频点播流媒体平台&#xff0c;成立于 2015 年&#xff0c;由 Singtel (新加坡最大的电信公司)、索尼和华纳兄弟共同出资 2200 万美元成立&#xff0c;其中…

c#如何取自身应用程序文件名和路径?

// 应用程序的路径&#xff0c;不带文件名 Application.StartupPath(); // 产品名称 Application.ProductName; // 产品版本&#xff08;可由.net自动升成版本控制&#xff09; Application.ProductVersion

使用阿里云服务器时遇到的问题及解决办法

2019独角兽企业重金招聘Python工程师标准>>> 1、在命令行里面直接输入中文数据会乱码&#xff0c;如果用phpmyadmin就不会了。 2、json返回的数据中中文乱码&#xff0c;通过修改文件的编码可以解决。 3、页面文件中<body>标签后面多了个空格和空行&#xff0…

“算法不行,干啥都不行!”面试官:面试基本都会考这点!

无论你是 Java&#xff0c;Python&#xff0c;还是 PHP&#xff0c;面试总逃脱不了一个问题&#xff1a;算法&#xff01;据统计&#xff0c;各大厂笔试平均通过率只有 10%~20%&#xff0c;基本都折在了算法上。滴滴出行笔试通过率为 18.2%&#xff1b;腾讯秋招笔试通过率不足1…

归于软银帐下,ARM需要接受的变与不变

摘要&#xff1a;软银此次对于ARM的收购&#xff0c;在无形之中也拉近了ARM与日本IDM大厂间的合作距离&#xff0c;可以帮助其更好地进行超算芯片的制造&#xff1b;而从另一个层面来讲&#xff0c;“后K超级计算机”又何尝不是ARM的一个“活字招牌”&#xff1f;7月中旬&#…

C#中TextBox只能输入数字的代码

private void txbSleep_KeyPress(object sender, KeyPressEventArgs e) { if (!(Char.IsNumber(e.KeyChar) || e.KeyChar /b)) { e.Handled true; } }