簡潔且實用Python一行代碼,40個案例講解

2021-12-26 尤而小屋

公眾號:尤而小屋
作者:Peter
編輯:Peter

大家好,我是Peter~

Python以其語法簡潔著稱。在學習Python的過程中,總是會發現Python能夠輕而易舉地幫助我們解決許多問題。

有時候看似複雜的任務,甚至是可以使用一行Python代碼就可以搞定。

下面Peter給大家介紹40個有趣且實用的Python的一行代碼,讓我們一起來感受Python的強大~

1、列印hello python

每個人都是從print函數開始的

print("hello python")  

hello python

print("hello Peter")  

hello Peter

print("數據分析師")  

數據分析師

2、二進位轉十進位
int("01110", 2)  # 2^3+2^2+2 = 8 + 4 + 2

14

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函數不包含101

5050

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*1

720

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-else
print("偶數") 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: 8

a, b = b, a  # 一行代碼交換

print("交換後a:",a)
print("交換後b:",b)

交換後a: 8
交換後b: 5

34、數據類型檢查
isinstance(5,int)  # 數值

True

isinstance("python",int)

False

isinstance("python",str)  # 字符串

True

isinstance([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最多

1

min(list10, key=list10.count)  # 元素3最少,只出現一次

3

40、當前時間
import time

time.time()   # 時間戳形式

1632501677.992713

time.ctime()  # 標準形式

'Sat Sep 25 00:09:18 2021'

相關焦點

  • Python一行代碼能做什麼,30個實用案例代碼詳解
    Python語法簡潔,能夠用一行代碼實現很多有趣的功能,這次來整理30個常見的Python一行代碼集合。lambda l : l if len(l)<=1 else qsort([x for x in l[1:] if x < l[0]]) + [l[0]] + qsort([x for x in l[1:] if x >= l[0]])qsort([1,3,2])[1, 2, 3]8、n個連續數之和
  • 一行代碼簡化Python異常信息:錯誤清晰指出,排版簡潔美觀
    只需一個import,報錯也能整齊劃一,錯誤代碼位置、錯誤原因清晰明了,一眼就能看清。debug仿佛都沒有那麼痛苦了。一行代碼簡化報錯先來試試一個簡單的錯誤。輸出變成了這個樣子:是不是清晰簡潔了許多?還可以自定義顏色。bug少的時候,還不覺得有什麼太大區別。當報錯信息鋪滿一整頁,美觀不美觀,對心靈的打擊程度就完全不同了。使用指南像Python的所有第三方庫一樣,PrettyErrors的安裝十分簡單。
  • Python 簡潔編碼之道
    在這種大背景的情況下, 以號稱「簡潔」著稱的 Python 語言自然而然火了起來.那是不是只要使用 Python 來寫代碼, 就算「簡潔」編碼呢? 非也, 即使用同樣的語言, 代碼的「簡潔」程度也是因人而異, 本文將結合生產環境中常見的代碼寫法進行講解, 給大家撥開迷霧見雲彩, 看透其中的奧秘.何謂「簡潔」編碼?
  • Python的一行代碼有何魅力?lambda匿名函數都自嘆不如
    @數據分析師攻略 公眾號關注、學習更多數據分析的知識與資訊------Python代碼具有簡潔易懂的特點,說明它有許多有趣且簡潔的代碼編寫方法,這也讓很多零基礎入門學習編程的同學偏愛從Python學起,接觸這個語言的人對Python這種簡潔的代碼編寫方法都愛不釋手。
  • 一行Python代碼能實現什麼喪心病狂的功能?
    基礎工作之一,就是要把這些圖片數據讀出來,組織成一個三維的數據結構(實際上是四維的,因為每個像素有 RGBA 四個通道)。(img)6data = np.stack(data, axis=0)我把這些代碼寫成一行,卻毫無晦澀艱深之感,仍然像詩歌一樣優美、像自然語言一樣通俗!
  • 四種高性能數據類型,Python collections助你優化代碼、簡潔任務
    這些數據類型可以對代碼進行優化,進而實現更簡潔的任務執行。Python 的最大優勢之一就是它有各種各樣的模塊和軟體包可供選擇。這些模塊和包將 Python 的功能擴展到了許多流行領域,包括機器學習、數據科學、Web 開發和前端等。其中表現最好的一個就是 Python 內置的 collections 模塊了。
  • 20 條非常實用的 Python 代碼,建議收藏!
    Python一直以來被詬病速度慢,影響開發效率,希望這次Guido老爺子能幫python打一場漂亮的翻身仗。這篇文章不準備介紹Python速度如何,而是給大家帶來一些常用且實用的Python代碼實例,幾乎是開發者必備的知識點。1、合併兩個字典Python3.5之後,合併字典變得容易起來。我們可以通過**符號解壓字典,並將多個字典傳入{}中,實現合併。
  • 20條非常實用的Python代碼,建議收藏!
    Python一直以來被詬病速度慢,影響開發效率,希望這次Guido老爺子能幫python打一場漂亮的翻身仗。這篇文章不準備介紹Python速度如何,而是給大家帶來一些常用且實用的Python代碼實例,幾乎是開發者必備的知識點。1、合併兩個字典Python3.5之後,合併字典變得容易起來。我們可以通過**符號解壓字典,並將多個字典傳入{}中,實現合併。
  • 一行Python代碼能實現什麼奇葩功能?
    來,我們來鞏固下,我們用一行代碼列印出來。(左右滑動查看所有代碼)print('\n'.join([' '.join(['%s*%s=%-2s' % (y, x, x*y) for y in range(1, x+1)]) for x in range(1, 10)]))
  • 【Python爬蟲奇淫技巧】 用pandas庫read_html函數一行代碼搞定爬蟲!
    ,還可以做簡易爬蟲,僅需一行核心代碼,就可以實現一個爬蟲程序,輕輕鬆鬆爬取網頁數據!那就好辦了,開始擼代碼!三、代碼講解代碼總共3行,核心代碼就1行:import pandas as pd url = 'http://weather.sina.com.cn/china/shanghaishi/' df = pd.read_html(url)[1]
  • 一行代碼實現Python並行處理
    對於不同的工作,通過嘗試來找到線程池大小的最優值是個不錯的主意。創建好 Pool 對象後,並行化的程序便呼之欲出了。>    'http://www.python.org/community/',    'https://wiki.python.org/moin/',    'http://planet.python.org/',    'https://wiki.python.org/moin/LocalUserGroups',    'http://www.python.org
  • Python一行代碼,能玩這麼多童年的遊戲?
    來源 | 早起 Python責編 | Carol封圖 | CSDN 下載自視覺中國兒童節就要來了,雖然禿頭程式設計師沒有頭髮,但是童心還是一直都在的,今天就分享一個私藏的GitHub項目——free-python-games,一行代碼就能進入使用Python開發的小遊戲快樂玩耍!
  • Python做數據分析-簡潔、易讀、強大
    使用過Python的用戶都會被其簡潔、易讀、強大的庫所折服,其pythonic語言特性,對人極其友好,可以說,一個完全不懂程式語言的人,看懂python
  • 八行python代碼展現程式設計師從入門到大神的八種階段
    人生苦短,我用python。python的世界裡無處不在的簡潔和短小,往往一行代碼可以實現很多有意思功能。你敢想像你從入門python代碼、網絡達人、反重力怪才、愛情自由怪、資源盜獵者、頓悟入禪、無所不能或者卷鋪跑路8個狀態只用了簡簡單單的8行代碼嗎?
  • 加快程序運行速度只需一行 Python 代碼
    ,10個G的驚喜譯者:caspar  譯文:https://segmentfault.com/a/1190000000414339 原文:https://medium.com/building-things-on-the-internet/40e9b2b36148大家好,我是一行Python
  • Python代碼加速的10個最佳實用技巧
    現在,你幾乎可以用python做任何事情:數據科學、機器學習、信號處理、數據可視化——你能想到的都可以。然而,許多人聲稱Python在解決嚴重問題時有點慢。但是,執行程序的時間取決於編寫的代碼。通過一些提示和技巧,可以加速Python代碼並提高程序的性能。加速Python代碼的提示和技巧如果您正在尋找提高python代碼速度的方法,這篇文章很適合您。闡
  • 一行代碼搞定 Python 日誌!
    我們也可以給日誌文件名稱加信息:logger.add('hello_{time}.log')上面的代碼運行後,會生成一個帶時間的日誌文件。上面代碼運行後,日誌文件記錄的信息如下:2021-03-16T22:47:53.227389+0800 | INFO | this is a info message在調用 remove() 方法後,其後面的日誌信息並沒有寫入日誌文件中。
  • 如何讓R與Python一起工作 | 案例講解
    R擁有自己的腳本語言和大量的統計、圖形庫(得益於開源社區),這讓她看起來既美又實用。與其他同類軟體(如 SPSS)相比,R的特點是純命令行的,這倒也好,我們更應該把注意力放在數據本身,而非統計工具的UI。
  • 用一行python代碼輕鬆解決,沒想到它這麼強
    python無所不能,是python之父GuidovanRossum的一個朋友說的。而python有多無所不能呢?下面羽憶教程為你展示一行python代碼可以做到輸出九九乘法表,甚至更多喪心病狂的事情,用python一行代碼統統搞定。
  • 一行代碼能做什麼?看到最後一個我終於忍不住……
    技術能力的提升需要不斷的學習和實踐,面對一行行枯燥的代碼,做出有趣的事情,更能增加學習的興趣和樂趣。那一行python代碼能做出什麼有趣的東西?C/C++有什麼趣味設計?有哪些趣味的Scratch小遊戲?