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