Python以其语法简洁著称,在学习Python的过程中,总是会发现Python能够帮助我们解决许多问题。有时候看似复杂的任务,甚至是可以使用一行Python代码就可以搞定了。
下面给大家介绍40个有趣且实用的Python的一行代码,让我们一起来感受Python的强大~
打印hello python
每个人都是从print函数开始的
1 | print("hello python") |
hello python
二进制转十进制
1 | int("01110", 2) # 2^3+2^2+2 |
14
八进制转十进制
1 | int("140",8) |
96
十六进制转十进制
1 | int("ac1",16) |
2753
生成连续数值列表
1 | list(range(9)) |
[0, 1, 2, 3, 4, 5, 6, 7, 8]
高斯求和
一行代码求解高斯之和
1 | sum(range(0,101)) # range函数不包含101 |
5050
求解奇、偶数之和
1 | # 除以2余数为0表示偶数 |
2550
1 | # 除以2余数不为0表示奇数 |
2500
阶乘
1 | import math # 需要借助第三方的库 |
720
矩阵转置
矩阵转置就是实现矩阵的行列转换
1 | list1 = [[1,4,7], [2,5,8], [3,6,9]] # 定义一个嵌套列表 |
1 | list(list(x) for x in zip(*list1)) # list函数实现 |
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
1 | [list(x) for x in zip(*list1)] # [] 符号实现 |
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
1 | for x in zip(*list1): |
[1, 2, 3]
[4, 5, 6]
[7, 8, 9]
嵌套列表合并
将多个列表合并成一个大列表
1 | list4 = [[1,2,3],[4,5,6],[7,8,9]] # 定义一个列表 |
[1, 2, 3, 4, 5, 6, 7, 8, 9]
列表合并
1 | a = [1,2,3] |
1 | a |
[1, 2, 3, 4, 5, 6]
列表反转
1 | list6 = [1,2,3,4,5,6,7] |
[7, 6, 5, 4, 3, 2, 1]
列表解包
1 | h,*i,j = [1,2,3,4,5] |
1
[2, 3, 4]
5
列表去重
通过将列表转成集合,利用集合的去重性质后再转成列表
1 | list7 = [1,2,3,4,3,2,3,3] |
[1, 2, 3, 4]
列表过滤
filter函数的两个参数:
- 指定某个函数
- 待执行的可迭代对象,每个对象执行前面的函数
1 | list(filter(lambda x:x % 3 == 0, [1,3,6,7,9,10])) # 找出3的倍数 |
[3, 6, 9]
列表推导式
1 | [number for number in range(0,11)] # [] |
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
集合推导式
1 | {number for number in range(0,11)} # {} |
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
合并集合
1 | s1 = {1,2,3} |
1 | s1 |
{1, 2, 3, 4, 5, 6}
字典推导式
1 | {i:i**3 for i in range(0,5)} # i**3表示i的三次方 |
{0: 0, 1: 1, 2: 8, 3: 27, 4: 64}
合并字典
1 | d1 = {"name1":"xiaoming","age1": 19} |
1 | d1 |
{'name1': 'xiaoming', 'age1': 19, 'name2': 'xiaoming', 'age2': 28}
if-for
1 | # 寻找3的倍数 |
[0, 3, 6, 9, 12, 15, 18]
if-else
1 | print("偶数") if 8 % 2 == 0 else ("奇数") |
偶数
1 | print("偶数") if 9 % 2 == 0 else print("奇数") |
奇数
快速排序
1 | list2 = [9,5,1,6,2,8] # 定义一个列表 |
[1, 2, 5, 6, 8, 9]
1 | sorted(list2, reverse=True) # 降序 |
[9, 8, 6, 5, 2, 1]
1 | list3 = ["ac","ab","bb","aa","bc","cd","ca"] |
['aa', 'ab', 'ac', 'bb', 'bc', 'ca', 'cd']
首先我们按照第一个字母的ASCII来排序,默认是升序;a最小。当第一个字母相同,再按照第二个字母排序
字符串转成字节
1 | "string to bytes".encode() |
b'string to bytes'
获取26个字母表
1 | import string |
'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
获取大写字母表
1 | string.ascii_uppercase |
'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
获取小写字母表
1 | string.ascii_lowercase |
'abcdefghijklmnopqrstuvwxyz'
字符串大小写转化
1 | "Hello! My name is Peter".lower() # 转成小写 |
'hello! my name is peter'
1 | # 转成小写的另一种写法 |
'hello! my name is peter'
1 | "Hello! My name is Peter".upper() # 转成全部大写 |
'HELLO! MY NAME IS PETER'
1 | "Hello! My name is Peter".title() # 转成首字母大写 |
'Hello! My Name Is Peter'
寻找最长字符串
1 | list7 = ["c","html","javascript","java"] |
'javascript'
1 | max(list7) # 默认 |
'javascript'
删除字符串中的数字
1 | "".join(list(filter(lambda x: x.isalpha(), "abcde12hk18"))) |
'abcdehk'
1 | list(filter(lambda x: x.isalpha(), "abcde12hk18")) |
['a', 'b', 'c', 'd', 'e', 'h', 'k']
列表中的字符串变成数值
1 | list(map(int, ["10","90","50"])) |
[10, 90, 50]
字符串反转
1 | "python"[::-1] |
'nohtyp'
交换变量
1 | a, b = 5, 8 # 定义两个变量 |
1 | print("交换前a:",a) |
交换前a: 5
交换前b: 8
1 | a, b = b, a # 一行代码交换 |
1 | print("交换后a:",a) |
交换后a: 8
交换后b: 5
数据类型检查
1 | isinstance(5,int) # 数值 |
True
1 | isinstance("python",int) |
False
1 | isinstance("python",str) # 字符串 |
True
1 | isinstance([1,3,6],list) # 列表 |
True
斐波那契数列
1 | fibo = lambda x: x if x <= 1 else fibo(x-1) + fibo(x-2) |
55
统计词频
统计字符串中单个字符的次数
1 | "javascript".count("a") |
2
1 | "javascript".count("s") |
1
1 | "hello".count("l") |
2
统计列表元素个数
1 | import pandas as pd |
1 4
2 3
3 2
6 2
4 1
5 1
dtype: int64
统计字符串元素个数
1 | from collections import Counter |
Counter({'a': 5, 'b': 4, 'c': 3, 'd': 2, 'e': 1})
统计最多元素
1 | list10 = [1,3,4,6,1,2,3,1,1,2,4,6,2] |
1
1 | min(list10, key=list10.count) # 元素3最少,只出现一次 |
3
当前时间
1 | import time |
1632501677.992713
1 | time.ctime() # 标准形式 |
'Sat Sep 25 00:41:18 2021'