公眾號:尤而小屋
作者:Peter
編輯:Peter
大家好,我是Peter~
Python以其語法簡潔著稱。在學習Python的過程中,總是會發現Python能夠輕而易舉地幫助我們解決許多問題。
有時候看似複雜的任務,甚至是可以使用一行Python代碼就可以搞定。
下面Peter給大家介紹40個有趣且實用的Python的一行代碼,讓我們一起來感受Python的強大~
1、列印hello python每個人都是從print函數開始的
print("hello python")hello pythonprint("hello Peter")hello Peterprint("數據分析師")數據分析師
2、二進位轉十進位int("01110", 2) # 2^3+2^2+2 = 8 + 4 + 214
3、八進位轉十進位int("140",8)96
4、十六進位轉十進位int("ac1",16)2753
5、生成連續數值列表list(range(9))[0, 1, 2, 3, 4, 5, 6, 7, 8]
6、高斯求和一行代碼求解高斯之和:求解1到100的所有數的和
sum(range(1,101)) # range函數不包含1015050
7、求解奇、偶數之和# 除以2餘數為0表示偶數
sum(i for i in range(1,101) if i % 2 == 0)2550# 除以2餘數為0表示奇數
sum(i for i in range(1,101) if i % 2 != 0)2500
8、階乘import math # 需要藉助第三方的庫
math.factorial(6) # 6*5*4*3*2*1720
9、矩陣轉置矩陣轉置就是實現矩陣的行列轉換
list1 = [[1,4,7], [2,5,8], [3,6,9]] # 定義一個嵌套列表list(list(x) for x in zip(*list1)) # list函數實現[[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]
10、嵌套列表合併將多個列表合併成一個大列表
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]
11、列表合併a = [1,2,3]
b = [4,5,6]
a.extend(b)a[1, 2, 3, 4, 5, 6]
12、列表反轉list6 = [1,2,3,4,5,6,7]
list6[::-1][7, 6, 5, 4, 3, 2, 1]
13、列表解包h,*i,j = [1,2,3,4,5]
print(h)
print(i)
print(j)1
[2, 3, 4]
5
14、列表去重通過將列錶轉成集合,利用集合的去重性質後再轉成列表
list7 = [1,2,3,4,3,2,3,3]
list(set(list7))[1, 2, 3, 4]
15、列表過濾filter函數的兩個參數:
list(filter(lambda x:x % 3 == 0, [1,3,6,7,9,10])) # 找出3的倍數[3, 6, 9]
16、列表推導式[number for number in range(0,11)] # [][0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
17、集合推導式{number for number in range(0,11)} # {}{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
18、合併集合s1 = {1,2,3}
s2 = {4,5,6}
s1.update(s2)s1{1, 2, 3, 4, 5, 6}
19、字典推導式{i:i**3 for i in range(0,5)} # i**3表示i的三次方{0: 0, 1: 1, 2: 8, 3: 27, 4: 64}
20、合併字典d1 = {"name1":"xiaoming","age1": 19}
d2 = {"name2":"xiaoming","age2": 28}
d1.update(d2)d1{'name1': 'xiaoming', 'age1': 19, 'name2': 'xiaoming', 'age2': 28}
21、if-for# 尋找3的倍數
[number for number in range(0,20) if number % 3 == 0][0, 3, 6, 9, 12, 15, 18]
22、if-elseprint("偶數") if 8 % 2 == 0 else ("奇數")偶數print("偶數") if 9 % 2 == 0 else print("奇數")奇數
23、快速排序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最小。當第一個字母相同,再按照第二個字母排序
24、字符串轉成字節"string to bytes".encode()b'string to bytes'
25、獲取26個字母表import string
string.ascii_letters # 大小寫'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
26、獲取大寫字母表string.ascii_uppercase'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
27、獲取小寫字母表string.ascii_lowercase'abcdefghijklmnopqrstuvwxyz'
28、字符串大小寫轉化"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'
29、尋找最長字符串list7 = ["c","html","javascript","java"]
max(list7, key=len) # key參數指定函數'javascript'max(list7) # 默認'javascript'
30、刪除字符串中的數字"".join(list(filter(lambda x: x.isalpha(), "abcde12hk18")))'abcdehk'list(filter(lambda x: x.isalpha(), "abcde12hk18"))['a', 'b', 'c', 'd', 'e', 'h', 'k']
31、列表中的字符串變成數值list(map(int, ["10","90","50"]))[10, 90, 50]
32、字符串反轉"python"[::-1]'nohtyp'
33、交換變量a, b = 5, 8 # 定義兩個變量print("交換前a:",a)
print("交換前b:",b)交換前a: 5
交換前b: 8a, b = b, a # 一行代碼交換print("交換後a:",a)
print("交換後b:",b)交換後a: 8
交換後b: 5
34、數據類型檢查isinstance(5,int) # 數值Trueisinstance("python",int)Falseisinstance("python",str) # 字符串Trueisinstance([1,3,6],list) # 列表True
35、斐波那契數列fibo = lambda x: x if x <= 1 else fibo(x-1) + fibo(x-2)
fibo(10)55
36、統計詞頻統計字符串中單個字符的次數
"javascript".count("a")2"javascript".count("s")1"hello".count("l")2
37、統計列表元素個數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
38、統計字符串元素個數from collections import Counter
Counter("abcdeabcdabcaba")Counter({'a': 5, 'b': 4, 'c': 3, 'd': 2, 'e': 1})
39、統計最多元素list10 = [1,3,4,6,1,2,3,1,1,2,4,6,2]
max(list10, key=list10.count) # 元素1最多1min(list10, key=list10.count) # 元素3最少,只出現一次3
40、當前時間import time
time.time() # 時間戳形式1632501677.992713time.ctime() # 標準形式'Sat Sep 25 00:09:18 2021'