一行python代码

2023-08-23 15:46:07 浏览数 (1)

Python以其语法简洁著称,在学习Python的过程中,总是会发现Python能够帮助我们解决许多问题。有时候看似复杂的任务,甚至是可以使用一行Python代码就可以搞定了。

下面给大家介绍40个有趣且实用的Python的一行代码,让我们一起来感受Python的强大~

打印hello python

每个人都是从print函数开始的

代码语言:javascript复制
print("hello python")
代码语言:javascript复制
hello python

二进制转十进制

代码语言:javascript复制
int("01110", 2)  # 2^3 2^2 2
代码语言:javascript复制
14

八进制转十进制

代码语言:javascript复制
int("140",8)
代码语言:javascript复制
96

十六进制转十进制

代码语言:javascript复制
int("ac1",16)
代码语言:javascript复制
2753

生成连续数值列表

代码语言:javascript复制
list(range(9))
代码语言:javascript复制
[0, 1, 2, 3, 4, 5, 6, 7, 8]

高斯求和

一行代码求解高斯之和

代码语言:javascript复制
sum(range(0,101))  # range函数不包含101
代码语言:javascript复制
5050

求解奇、偶数之和

代码语言:javascript复制
# 除以2余数为0表示偶数

sum(i for i in range(0,101) if i % 2 == 0)
代码语言:javascript复制
2550
代码语言:javascript复制
# 除以2余数不为0表示奇数

sum(i for i in range(0,101) if i % 2 != 0)
代码语言:javascript复制
2500

阶乘

代码语言:javascript复制
import math  # 需要借助第三方的库

math.factorial(6) # 6*5*4*3*2*1
代码语言:javascript复制
720

矩阵转置

矩阵转置就是实现矩阵的行列转换

代码语言:javascript复制
list1 = [[1,4,7], [2,5,8], [3,6,9]]  # 定义一个嵌套列表
代码语言:javascript复制
list(list(x) for x in zip(*list1))  # list函数实现
代码语言:javascript复制
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
代码语言:javascript复制
[list(x) for x in zip(*list1)]   # [] 符号实现
代码语言:javascript复制
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
代码语言:javascript复制
for x in zip(*list1):
    print(list(x))
代码语言:javascript复制
[1, 2, 3]
[4, 5, 6]
[7, 8, 9]

嵌套列表合并

将多个列表合并成一个大列表

代码语言:javascript复制
list4 = [[1,2,3],[4,5,6],[7,8,9]]  # 定义一个列表

list(item for list5 in list4 for item in list5) # 从大到小
代码语言:javascript复制
[1, 2, 3, 4, 5, 6, 7, 8, 9]

列表合并

代码语言:javascript复制
a = [1,2,3]
b = [4,5,6]

a.extend(b)
代码语言:javascript复制
a
代码语言:javascript复制
[1, 2, 3, 4, 5, 6]

列表反转

代码语言:javascript复制
list6 = [1,2,3,4,5,6,7]

list6[::-1]
代码语言:javascript复制
[7, 6, 5, 4, 3, 2, 1]

列表解包

代码语言:javascript复制
h,*i,j = [1,2,3,4,5]

print(h)
print(i)
print(j)
代码语言:javascript复制
1
[2, 3, 4]
5

列表去重

通过将列表转成集合,利用集合的去重性质后再转成列表

代码语言:javascript复制
list7 = [1,2,3,4,3,2,3,3]

list(set(list7))
代码语言:javascript复制
[1, 2, 3, 4]

列表过滤

filter函数的两个参数:

  • 指定某个函数
  • 待执行的可迭代对象,每个对象执行前面的函数
代码语言:javascript复制
list(filter(lambda x:x % 3 == 0, [1,3,6,7,9,10]))  # 找出3的倍数
代码语言:javascript复制
[3, 6, 9]

列表推导式

代码语言:javascript复制
[number for number in range(0,11)]  # []
代码语言:javascript复制
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

集合推导式

代码语言:javascript复制
{number for number in range(0,11)}  # {}
代码语言:javascript复制
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}

合并集合

代码语言:javascript复制
s1 = {1,2,3}
s2 = {4,5,6}

s1.update(s2)
代码语言:javascript复制
s1
代码语言:javascript复制
{1, 2, 3, 4, 5, 6}

字典推导式

代码语言:javascript复制
{i:i**3 for i in range(0,5)}  # i**3表示i的三次方
代码语言:javascript复制
{0: 0, 1: 1, 2: 8, 3: 27, 4: 64}

合并字典

代码语言:javascript复制
d1 = {"name1":"xiaoming","age1": 19}
d2 = {"name2":"xiaoming","age2": 28}

d1.update(d2)
代码语言:javascript复制
d1
代码语言:javascript复制
{'name1': 'xiaoming', 'age1': 19, 'name2': 'xiaoming', 'age2': 28}

if-for

代码语言:javascript复制
# 寻找3的倍数

[number for number in range(0,20) if number % 3 == 0]
代码语言:javascript复制
[0, 3, 6, 9, 12, 15, 18]

if-else

代码语言:javascript复制
print("偶数") if 8 % 2 == 0 else ("奇数")
代码语言:javascript复制
偶数
代码语言:javascript复制
print("偶数") if 9 % 2 == 0 else print("奇数")
代码语言:javascript复制
奇数

快速排序

代码语言:javascript复制
list2 = [9,5,1,6,2,8]  # 定义一个列表

sorted(list2) # 默认升序
代码语言:javascript复制
[1, 2, 5, 6, 8, 9]
代码语言:javascript复制
sorted(list2, reverse=True) # 降序
代码语言:javascript复制
[9, 8, 6, 5, 2, 1]
代码语言:javascript复制
list3 = ["ac","ab","bb","aa","bc","cd","ca"]
sorted(list3)
代码语言:javascript复制
['aa', 'ab', 'ac', 'bb', 'bc', 'ca', 'cd']

首先我们按照第一个字母的ASCII来排序,默认是升序;a最小。当第一个字母相同,再按照第二个字母排序

字符串转成字节

代码语言:javascript复制
"string to bytes".encode()
代码语言:javascript复制
b'string to bytes'

获取26个字母表

代码语言:javascript复制
import string

string.ascii_letters  #  大小写
代码语言:javascript复制
'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'

获取大写字母表

代码语言:javascript复制
string.ascii_uppercase
代码语言:javascript复制
'ABCDEFGHIJKLMNOPQRSTUVWXYZ'

获取小写字母表

代码语言:javascript复制
string.ascii_lowercase
代码语言:javascript复制
'abcdefghijklmnopqrstuvwxyz'

字符串大小写转化

代码语言:javascript复制
"Hello! My name is Peter".lower()   # 转成小写
代码语言:javascript复制
'hello! my name is peter'
代码语言:javascript复制
# 转成小写的另一种写法

"Hello! My name is Peter".casefold()
代码语言:javascript复制
'hello! my name is peter'
代码语言:javascript复制
"Hello! My name is Peter".upper()  # 转成全部大写
代码语言:javascript复制
'HELLO! MY NAME IS PETER'
代码语言:javascript复制
"Hello! My name is Peter".title()  # 转成首字母大写
代码语言:javascript复制
'Hello! My Name Is Peter'

寻找最长字符串

代码语言:javascript复制
list7 = ["c","html","javascript","java"]

max(list7, key=len)  # key参数指定函数
代码语言:javascript复制
'javascript'
代码语言:javascript复制
max(list7)  # 默认
代码语言:javascript复制
'javascript'

删除字符串中的数字

代码语言:javascript复制
"".join(list(filter(lambda x: x.isalpha(), "abcde12hk18")))
代码语言:javascript复制
'abcdehk'
代码语言:javascript复制
list(filter(lambda x: x.isalpha(), "abcde12hk18"))
代码语言:javascript复制
['a', 'b', 'c', 'd', 'e', 'h', 'k']

列表中的字符串变成数值

代码语言:javascript复制
list(map(int, ["10","90","50"]))
代码语言:javascript复制
[10, 90, 50]

字符串反转

代码语言:javascript复制
"python"[::-1]
代码语言:javascript复制
'nohtyp'

交换变量

代码语言:javascript复制
a, b = 5, 8  # 定义两个变量
代码语言:javascript复制
print("交换前a:",a)
print("交换前b:",b)
代码语言:javascript复制
交换前a: 5
交换前b: 8
代码语言:javascript复制
a, b = b, a  # 一行代码交换
代码语言:javascript复制
print("交换后a:",a)
print("交换后b:",b)
代码语言:javascript复制
交换后a: 8
交换后b: 5

数据类型检查

代码语言:javascript复制
isinstance(5,int)  # 数值
代码语言:javascript复制
True
代码语言:javascript复制
isinstance("python",int)
代码语言:javascript复制
False
代码语言:javascript复制
isinstance("python",str)  # 字符串
代码语言:javascript复制
True
代码语言:javascript复制
isinstance([1,3,6],list)  # 列表
代码语言:javascript复制
True

斐波那契数列

代码语言:javascript复制
fibo = lambda x: x if x <= 1 else fibo(x-1)   fibo(x-2)

fibo(10)
代码语言:javascript复制
55

统计词频

统计字符串中单个字符的次数

代码语言:javascript复制
"javascript".count("a")
代码语言:javascript复制
2
代码语言:javascript复制
"javascript".count("s")
代码语言:javascript复制
1
代码语言:javascript复制
"hello".count("l")
代码语言:javascript复制
2

统计列表元素个数

代码语言:javascript复制
import pandas as pd

list10 = [1,3,4,6,1,2,3,1,1,2,5,6,2]

pd.value_counts(list10)
代码语言:javascript复制
1    4
2    3
3    2
6    2
4    1
5    1
dtype: int64

统计字符串元素个数

代码语言:javascript复制
from collections import Counter

Counter("abcdeabcdabcaba")
代码语言:javascript复制
Counter({'a': 5, 'b': 4, 'c': 3, 'd': 2, 'e': 1})

统计最多元素

代码语言:javascript复制
list10 = [1,3,4,6,1,2,3,1,1,2,4,6,2]

max(list10, key=list10.count)  # 元素1最多
代码语言:javascript复制
1
代码语言:javascript复制
min(list10, key=list10.count)  # 元素3最少,只出现一次
代码语言:javascript复制
3

当前时间

代码语言:javascript复制
import time

time.time()   # 时间戳形式
代码语言:javascript复制
1632501677.992713
代码语言:javascript复制
time.ctime()  # 标准形式
代码语言:javascript复制
'Sat Sep 25 00:41:18 2021'

0 人点赞