25个好用到爆的一行 Python 代码,建议收藏
作者 | 欣一
来源 | Pyhton爱好集中营
在学习Python
的过程当中,有很多复杂的任务其实只需要一行代码就可以解决,那么今天小编我就来给大家介绍实用的一行Python
代码,希望对大家能够有所帮助。
1.两个字典的合并
x = {'a': 1, 'b': 2}
y = {'c': 3, 'd': 4}
将两个字典合并起来,代码如下
x.update(y)
print(x)
output
{'a': 1, 'b': 2, 'c': 3, 'd': 4}
2.两个列表的合并
x = ['a', 'b']
y = ['c', 'd', 'e']
将上面两个列表合并起来,代码如下
x.extend(y)
print(x)
output
['a', 'b', 'c', 'd', 'e']
当然除此之外,我们还有其他的方法来将两个列表合并起来,例如
x += y
print(x)
output
['a', 'b', 'c', 'd', 'e']
3.计算列表中元素出现的频率
主要是通过调用python
当中的collections
模块来实现,例如
from collections import Counter
my_list = ['a', 'b', 'b', 'a', 'a', 'a', 'c', 'c', 'b', 'd']
print(Counter(my_list).most_common())
output
[('a', 4), ('b', 3), ('c', 2), ('d', 1)]
若是我们想要出现频率最多的一个,也就是在上面代码的基础之上添加筛选第一个元素
的操作即可
print(Counter(my_list).most_common()[0])
output
('a', 4)
出现频率最多的是元素a
,总共出现了4次
当然要是在后面再添加一个[0]
,意思就是筛选出出现频率最多的元素
print(Counter(my_list).most_common()[0][0])
output
a
4.计算获得除法中的商和余数
一般我们若想取得除法当中的商和余数,一般是Python运算符号当中的//
和/
,而divmod
方法则可以让我们同时获得除法运算当中的商和余数,代码如下
quotient, remainder = divmod(37, 5)
print(quotient, remainder)
output
7 2
5.计算得到列表当中长度最长的字符串
words = ['Python', 'is', 'awesome']
print(max(words, key=len))
output
awesome
6.将列表中的顺序倒转
words = ['Python', 'is', 'awesome']
reverse_words = words[::-1]
print(reverse_words)
output
['awesome', 'is', 'Python']
7.文件的读与写
我们先将数据写入到文件当中
data = 'Python is awesome'
with open('file.txt', 'a', newline='\n') as f: f.write(data)
那我们从刚生成的文件当中读取刚写入的数据,代码就是这么来写
data = [line.strip() for line in open("file.txt")]
print(data)
output
['Python is awesome']
8.将字典当中的键值对位置调换
staff = {'Data Scientist': 'Mike', 'Django Developer': 'Dylan'}
staff = {i:j for j, i in staff.items()}
print(staff)
output
{'Mike': 'Data Scientist', 'Dylan': 'Django Developer'}
9.将嵌套列表合并为一个列表
假设我们有这样的一个列表
l = [[1, 2, 3], [4, 5], [6], [7, 8], [9]]
而我们最终希望列表能够是
[1, 2, 3, 4, 5, 6, 7, 8, 9]
我们可以这么来做
flattened_list = [item for sublist in l for item in sublist
print(flattened_list)
output
[1, 2, 3, 4, 5, 6, 7, 8, 9]
10.列表当中数据类型的转换
例如有下面的列表
['1', '2', '3']
我们要将其转换成整数类型,代码如下
print(list(map(int, ['1', '2', '3'])))
output
[1, 2, 3]
当然我们也可以将可以尝试转换成浮点数的类型,代码如下
print(list(map(float, ['1', 2, '3.0', 4.0, '5', 6])))
output
[1.0, 2.0, 3.0, 4.0, 5.0, 6.0]
11.将列表转化成字典
cars = ['Audi', 'BMW', 'Ford', 'Tesla', 'Volvo']
cars_dict = dict(enumerate(cars))
print(cars_dict)
output
{0: 'Audi', 1: 'BMW', 2: 'Ford', 3: 'Tesla', 4: 'Volvo'}
12.将列表当中的重复元素去除
list(set(['a', 'a', 'b', 'a', 'c']))
output
['a', 'b', 'c']
13.从列表中筛选出特定元素
cars = ['Audi', 'BMW', 'Ford', 'Tesla', 'Volvo']
car_1 = [car for car in cars if car[0] == "A"]
print(car_1)
output
['Audi']
当然我们还可以通过调用Python
当中的filter
方法来实现,代码如下
car_1 = list(filter(lambda c: c[0] == 'A', cars))
得到的结果也和上述的一样
14.列表中的元素排序
numbers = [55, -30, 28, -36, 48, 20]
numbers.sort()
print(numbers)
output
[-36, -30, 20, 28, 48, 55]
当然我们也可以从大到小,这样的方式来排序,代码如下
numbers.sort(reverse=True)
numbers
output
[55, 48, 28, 20, -30, -36]
而对于字符串而言,我们可以根据首字母的字母表顺序来排序
cars = ['Ford', 'Tesla', 'BMW', 'Volvo', 'Audi']
cars.sort()
print(cars)
output
['Audi', 'BMW', 'Ford', 'Tesla', 'Volvo']
15.合并集合
set1 = {"1", "2", "5"}
set2 = {"4", "6", "7"}set1.update(set2)
print(set1)
output
{'7', '6', '5', '2', '1', '4'}
16. 根据键来对字典进行排序
d = {'one': 1, 'three': 4, 'five': 8, 'six': 10}
result = {key: d[key] for key in sorted(d.keys())}
print(result)
output
{'five': 8, 'one': 1, 'six': 10, 'three': 4}
17. 根据键值来对字典进行排序
d = {'one': 15, 'three': 12, 'five': 8, 'six': 30}
result = {key: value for key, value in sorted(d.items(), key=lambda item: item[1])}
print(result)
output
{'five': 8, 'three': 12, 'one': 15, 'six': 30}
18. 替换字符串
"Python is a programming language. Python is awesome".replace("Python",'Java')
output
Java is a programming language. Java is awesome
19. 计算指定字符串出现的次数
a = 'python is a programming language. python is python.'
result = a.count('python')
print(result)
output
3
20. 将自定义方法作用在列表中的每个元素
from functools import reducereduce(lambda x, y: x*y, [2, 2, 3, 4])
output
48
21. 找到最大的那个数
find_max = lambda x,y: x if x > y else y
result = find_max(5,20)
output
20
22. 将矩阵转置
a = [[1, 2, 3],[4, 5, 6],[7, 8, 9]]transposed = [list(i) for i in zip(*a)]
print(transposed)
output
[[1, 4, 7], [2, 5, 8], [3, 6, 9]]
23. 生成斐波纳契数列
斐波纳契数列指的是列表当中元素的值是由前两个元素的值的总和而来的,例如像是1, 1, 2, 3, 5, 8,13
,要生成它的代码如下
fibo = [0, 1]
[fibo.append(fibo[-2]+fibo[-1]) for i in range(10)]
print(fibo)
output
[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]
24. 删除列表中的多个元素
mylist = [100, 200, 300, 400, 500]
del mylist[:3]
print(mylist)
output
[400, 500]
25. 多个if-else
组合
目标是将下面多个if-else
的组合,写在一行上面
x = 200if x < 20:print("小于20")
elif x == 200:print("等于200")
else:print("大于20且不等于200")
我们也可以将多个if-else
组合放在一行上面写
x = 200
print("小于20") if x < 20 else print("等于200") if x == 200 else print("大于20且不等于200")
往
期
回
顾
资讯
活体人脑细胞5分钟学会打游戏
资讯
Log4j还没完事,新的漏洞又来
资讯
AI语言模型是否越大越好?
资讯
这个AI模型火上GitHub热榜
分享
点收藏
点点赞
点在看
相关文章:

【工业串口和网络软件通讯平台(SuperIO)教程】七.二次开发服务驱动
SuperIO相关资料下载:http://pan.baidu.com/s/1pJ7lZWf 1.1 服务接口的作用 围绕着设备驱动模块采集的数据,根据需求提供多种应用服务,例如:数据上传服务、数据请求服务、4-20mA服务、短信服务、LED服务以及OPC服务等。保障数…

usermod命令,用户密码管理和mkpasswd命令
2019独角兽企业重金招聘Python工程师标准>>> usermod 设置扩展组 概念:更改用户属性的一个命令。 用法:usermod [选项] 后面跟你需要操作的内容 [用户名] 选项:-c, --comment 注释 GECOS 字段的新值-d, --home HO…

extjs关于jsonreader
在JavaScript中,JSON是一种非常重要的数据格式,key:value的形式比XML那种复杂的标签结构更容易理解,代码量也更小,很多人倾向于使用它作为EXT的数据交换格式。JsonReader支持分页,与JSON数据对应格式如下:t…

求逆元 - HNU 13412 Cookie Counter
Cookie Counter Problems Link: http://acm.hnu.cn/online/?actionproblem&typeshow&id13412&courseid0 Mean: 将N分为D份,每份不超过X,有多少种分法? analyse: 首先我们想到的是迭代,但是数据太大,…

IEEE 发布年终总结,AI 奇迹不再是故事
编译 | 禾木木 出品 | AI科技大本营(ID:rgznai100) 2021 年,人工智能奇迹不再只是故事! 人工智能正在迅速融入各行各业,IEEE Spectrum 总结了 2021 年 10 篇最受读者欢迎的 AI 文章,按时间排名,…

一则利用内核漏洞获取root权限的案例【转】
转自:https://blog.csdn.net/u014089131/article/details/73933649 目录(?)[-] 漏洞描述漏洞的影响范围漏洞曝光时间漏洞产生的原因漏洞的利用exploit代码分析kernel 最近出了一个新的本地提权安全漏洞CVE-2013-1763,影响范围比较广泛,ubunt…

Ext.data库
Ext.data 库主要包括以下几个类:Ext.data.Store >DataSetExt.data.Record >DataSet.RowExt.data.DataProxy >SqlConnectionExt.data.DataReader >SqlDataAdapter以下分别进行介绍:1.Ext.data.Record可以用来定义一行数据的格式,它有几个重要的属性和方法…

2021年最有用的数据清洗 Python 库
作者 | 周萝卜来源 | 萝卜大杂烩大多数调查表明,数据科学家和数据分析师需要花费 70-80% 的时间来清理和准备数据以进行分析。对于许多数据工作者来说,数据的清理和准备也往往是他们工作中最不喜欢的部分,因此他们将另外 20-30% 的时间花在抱…

组合与继承之重写方法和字段
为什么80%的码农都做不了架构师?>>> 接上篇blog,scala里的字段和方法属于相同的命名空间,这让字段可以重写无参数方法。例如,你可以通过改变ArrayElement类中contents的实现将其从一个方法变为一个字段,而…

20165334 四则运算阶段性总结(第二周)
四则运算阶段性总结(第二周) 结对对象 学号 :20165334 姓名 : 李天龙 担任角色 (驾驶员):李天龙 (副驾驶):陈国超 一、实验实现步骤 整数计算类分数计算类自动…

取消掉Transfer-Encoding:chunked
有时候,Web服务器生成HTTP Response是无法在Header就确定消息大小的,这时一般来说服务器将不会提供Content-Length的头信息,而采用Chunked编码动态的提供body内容的长度。进行Chunked编码传输的HTTP Response会在消息头部设置:Tra…

【LeetCode】142 - Linked List Cycle II
Given a linked list, return the node where the cycle begins. If there is no cycle, return null. Follow up:Can you solve it without using extra space? Solution: Discuss上的分析:Suppose the first meet at step k,the length of the Cycle …

3000 字详解 Pandas 数据查询,建议收藏
作者 | 俊欣来源 | 关于数据分析与可视化今天小编来和大家说一说怎么从DataFrame数据集中筛选符合指定条件的数据,希望会对读者朋友有所帮助。导入数据集和模块我们先导入pandas模块,并且读取数据,代码如下import pandas as pd df pd.read_c…

stylus使用文档总结:内置方法+参数+条件+迭代+导入+继承
一、内置方法 返回各种颜色的比重(如red(color)等) 颜色函数是CSS预处里器中内置的颜色函数功能,这些功能可以对颜色值进行处理,例如颜色的变亮、变暗、渐变颜色等处理十分的方便。 lighten(color, 10%); /* 返回的颜色在color基础…

用 Python 制作酷炫的可视化大屏,特简单!
作者 | 小F来源 | 法纳斯特在数据时代,我们每个人既是数据的生产者,也是数据的使用者,然而初次获取和存储的原始数据杂乱无章、信息冗余、价值较低。要想数据达到生动有趣、让人一目了然、豁然开朗的效果,就需要借助数据可视化。以…

HTTP协议中的Tranfer-Encoding:chunked编码解析
当不能预先确定报文体的长度时,不可能在头中包含Content-Length域来指明报文体长度,此时就需要通过Transfer-Encoding域来确定报文体长度。通常情况下,Transfer-Encoding域的值应当为chunked,表明采用chunked编码方式来进行报文体的传输。chu…

[转] splice系列系统调用
关注splice系列系统调用(包括splice,tee和vmsplice)已经有一段时间了,开始的时候并未能领会splice的意义所在,致使得出了“splice系列系统调用不怎么实用”的错误结论。随着内核研究的深入,才逐渐懂得&…

嵌入式s5vp210裸机 KXTF9-2050(G-sensor)
1.KXTF9-2050简介 KXTF9-205是G-sensor的一种,G-sensor(Gravity sensor),重力传感器,又名加速度传感器(accelerometer),是能感知加速度大小的MEMS(微机电系统)传感器。使用I2C协议和…

JavaScript面向对象编程
自从有了Ajax这个概念,JavaScript作为Ajax的利器,其作用一路飙升。JavaScript最基本的使用,以及语法、浏览器对象等等东东在这里就不累赘了。把主要篇幅放在如何实现JavaScript的面向对象编程方面。1. 用JavaScript实现类 JavaScritpt没…

sublime text3 前端插件介绍
Emmet插件 Emmet插件可以说是使用Sublime Text进行前端开发必不可少的插件 它让编写HTML代码变得极其简单高效 基本用法:输入标签简写形式,然后按Tab键 关于Emmet的更多介绍,请查看官方文档 这份速查表,可以帮你快速记忆简写形式 …

如何使用 OpenCV Python 检测颜色
作者 | 小白来源 | 小白学视觉在这篇文章中,我们将看到如何使用 Python 中的 OpenCV 模块检测颜色,进入这个领域的第一步就是安装下面提到的模块。pip install opencv-python pip install numpy然后,导入模块。读取图像并使用 OpenCV 模块中的…

使用树形结构保存实体
阅读原文请访问我的博客BrightLoongs Blog之前在项目需要实现一个功能——将xml文件映射成实体,然后对映射的实体进行逻辑处理,最后保存到数据库中;由于xml结构的数据是结构化的数据,所以需要保证保存的数据具有正确的主外键关联。…

在Javascript中使用面向对象的编程
by Mike Koss March 26th, 2003 这是一篇,我个人认为最好的,Javascript面向对象编程的文章。翻译不好的地方,还望大家指正,谢谢。 如果您需要,可以访问下面的地址取得原文: http://mckoss.com/jscript/obj…

马斯克嘲笑「元宇宙」的想法,并给年轻人5条鸡汤
编译 | 禾木木出品 | AI科技大本营(ID:rgznai100)SpaceX 和特斯拉的CEO 马斯克在接受 The Babylon Bee 的采访中,当被问到元宇宙的问题时,马斯克只笑了笑。马斯克表示:“我对元宇宙这个概念没有什么印象,尽…

OpenLDAP自定义属性的启用
2019独角兽企业重金招聘Python工程师标准>>> # ucode# This multivalued field is used to record the values of the license or# registration plate associated with an individual.attributetype ( 2.16.840.1.113730.3.1.900 NAME ucode DESC user code …

硬中断与软中断的区别!
硬中断: 1. 硬中断是由硬件产生的,比如,像磁盘,网卡,键盘,时钟等。每个设备或设备集都有它自己的IRQ(中断请求)。基于IRQ,CPU可以将相应的请求分发到对应的硬件驱动上&am…

smarty模板
<?phprequire(../libs/Smarty.class.php);$smarty new Smarty;//$smarty->force_compile true;//$smarty->debugging true;//$smarty->caching true;//$smarty->cache_lifetime 120;$Name"Linux环境高级编程";$smarty->assign("name&qu…

乘“云原生”之风、踏“数字化”的浪,《新程序员003》开启预售!
12月30日,新年的钟声还有两天敲响,CSDN倾情策划出品的《新程序员003:云原生和全面数字化实践》(以下简称《新程序员003》)重磅开启预售!新一年,新气象~预祝所有开发者在新的一年中大神附体&…

BZOJ4245 : [ONTAK2015]OR-XOR
按位考虑,逐步确定答案。 设当前是第i位,求出第i位的前缀异或和。 若存在m个0且所有数字异或和为0,那么答案的这一位可以为0,并把所有1的位置给标记为不可选。 否则答案的这一位只能是1。 时间复杂度$O(n\log n)$。 #include<c…

关键词排名下降怎么办-优八学院给你支招
优八学院下面为大家解决一下关于关键词排名下降的问题。在我们进行网站优化的时候,往往会出现关键词排名下降的现象。对于这种情况,我们要区别是否是正常的浮动,由于有时候搜索引擎也会发生错误,导致关键词排名下降,我…