IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 25个有趣实用的Python单行代码 -> 正文阅读

[Python知识库]25个有趣实用的Python单行代码

一行代码搞定的事情,为啥要两行!

查看原文,代码均可在线运行!

在用Python的第一天,便对它的简单性、流行性及其著名的单行代码着迷。

下面分享25个有趣且实用的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. 列表偶数求和

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]

此处需要理解L[start:end:step]:

  • start为开始位置,省略时为0
  • end为结束位置,省略时为列表长度;
  • step步长,省略时为1,如果有负号- 表示按列表自右到左的方向迭代。

5. 读取文件

最常用的方式

with open("data.txt") as f: ## 👍👍
   lst=[line.strip() for line in f]   
print(lst)

更简单、更短的方法

lst = list(open('data.txt')) ## 👍👍👍
print(lst)

也可以

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

6. 将数据写入文件

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

7. 创建列表

range()函数可以用于生成一系列整数:

lst = [i for i in range(0,10)] ## 👍
print(lst)   

单行列表推导,快速创建:

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

8. 映射列表

有时需要改变一个列表中所有元素的数据类型。比较直观的想法是使用循环:先访问列表中的所有元素,然后逐个更改元素的数据类型。这种方法中规中矩,但巧用 map一一映射,耳目一新。

list(map(int,['1','2','3'])) ## 👍👍👍
list(map(float,[1,2,3])) ## 👍👍👍
[float(i) for i in [1,2,3]] ## 👍👍

9. 快速创建集合

我们可用创建列表的方法快速创建集合:

#### 范围内所有偶数的平方
s = {x**2 for x in range(10) if x%2==0} ## 👍👍👍
print(s) #结果:{0, 4, 16, 36, 64}

10. FizzBuzz单行代码

有这样一个问题,需要编写一个程序来打印从 1100 的数字。其中对于3的倍数,打印Fizz,对于 5 的倍数,打印Buzz

显而易见,可以使用循环和多个if-else 语句来实现。

如果使用java语言来完成,估计至少10行代码,但使用python,一行搞定!!!。

['FizzBu??zz' 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 )] ## 👍👍👍👍

在上面的代码中,使用列表推导来运行一个从120 的循环,然后在循环的每次迭代中,检查数字:

  • 如果能同时被 35 整除,则用 FizzBu??zz 替换;
  • 如果只能被 3 整除,我们用 Fizz 替换;
  • 如果只能被 5 整除,则用 Buzz 替换;
  • 否则仍然为原来的数字。

11. 回文数

回文是反转后看起来相同的数字或字符串。

text = 'level'
ispalindrome = text == text[::-1] ## 👍👍👍
print(ispalindrome) ## True

12. 空格分隔整数到列表

input_string = '1 2 3 4 5'
lis = list(map(int,input_string.split())) ## 👍👍👍
print(lis) ## [1, 2, 3, 4, 5]

13. Lambda 函数

lambda函数是匿名函数。一个 lambda 函数可以接受任意数量的参数,但只能是一个表达式。

下面是一个简单的lambda 函数,它接受一个数字,并返回数字的平方:

sqr = lambda x: x * x   ## 👍👍👍
sqr(10) ## 100

14. 检查元素是否在列表中

num = 5
res = 'present' if num in [1,2,3,4,5] else 'not present' ## 👍👍👍
print(res) ## present

15. 打印图案

用符号打印有趣的图案总是让我着迷。在python中,只需一行代码就可以绘制出惊人的图案:

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

输出为:

😀
😀😀   
😀😀😀   
😀😀😀😀   
😀😀😀😀😀

16. 计算阶乘

import math 
n = 6
print(math.factorial(n)) ## 720

17. 斐波那契数列

斐波那契数列,其中每个数字都是前面两个数字的总和。例如:最简单的斐波那契数列: 1, 1, 2, 3, 5, 8, 13
我们可以使用列表推导创建一个范围内的斐波那契数列。

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

18. 生成素数

素数是一个只能被它自己和 1 整除的数。例如: 2,3,5,7。为了在一个范围内生成素数,可以使用带有过滤器filterlambda 的列表函数来生成素数。

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

19. 最大数

findmax = lambda x,y: x if x > y else y ## 👍👍
findmax(5,14) ## 14

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函数在一行代码中转置矩阵。当然在numpy中,可以直接使用transpose函数。

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

22. 正则表达式–模式匹配

当需要知道文本中某个模式出现的次数时,在 python 中,有re库可以完成这些工作。

import re
res = re.findall('python','python is a programming language. python is python.')) ##👍👍👍👍
print(res) ## ['python', 'python', 'python']

当然re库不仅仅上面这么简单。re是一个非常有用的库,帮助我们更好地处理文本。

23. 文本替换

s = "python is a programming language.python is python"
s = s.replace("python",'Java') ##👍
print(s) ## "Java is a programming language.Java is Java"

24. 模拟抛硬币

当需要从给定的集合中中些随机进行选择,random.choice非常有用:

import random;
res = random.choice(['Head',"Tail"]) ##👍👍👍👍
print(res) ## Head or Tail

25. 生成组合元组

groups = [(a, b) for a in ['a', 'b'] for b in [1, 2, 3]] ##👍👍👍👍
print(groups) ## [('a', 1), ('a', 2), ('a', 3), ('b', 1), ('b', 2), ('b', 3)]

小节

以上就是我们分享的25个有趣且实用的pyhton单行代码,希望充实你武器库!

pythontip 出品,Happy Coding!

公众号: 夸克编程

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-11-26 08:49:10  更:2021-11-26 08:51:21 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 2:15:03-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码