90%開發者未注意到的Python特性

數據分析那些事
5 min readOct 30, 2023

--

如果你在日常工作中經常使用Python進行編碼,那麼毫無疑問你會非常喜歡這個簡單的Python功能。

閒話少說,我們直接開始吧!

2、舉個例子

要求大家打印列表中元素的值。我想大部分人可以立即使用 for 循環來執行此操作。

1 li = [10, 20, 30, 40, 50]
2
3 for i in li:
4 print(i)

結果如下:

1 10
2 20
3 30
4 40
5 50

但是現在,我們是否可以在同一行中打印多個元素的值,每個元素之間都有一個空格。此時我們可以通過使用函數 print() 中的 end 參數來實現。代碼如下:

1 li = [10, 20, 30, 40, 50]
2
3 for i in li:
4 print(i, end=' ')

結果如下:

1 10 20 30 40 50

3、問題由來

現在,的確上述輸出,看起來可以滿足我們的要求。但是有個不完美的地方在於最後一個循環打印 數字50的時候,使用 end 參數在其後添加一個空格。雖然end參數幫助我們打印了中間的空間,但將空格放在最後的這種副作用並不是我們想要的。

特別是,當涉及到在線面試問題和編碼平臺時,他們希望我們得到給定的確切輸出。即使是額外的空格有時候也會導致網站不接受我們的解決方案。

4、錯誤方案

要解決此問題,如果您考慮通過索引打印每個元素,那大概率是行不通的!爲什麼?因爲編碼平臺具有隱藏的測試用例,這些測試用例可能會接收不同數量的值。

下面是一個示例。

1 Question
2
3 Get a list of integers as input in the given format and print the values
4 in the given format:
5
6 Input:
7 10 20 30
8
9 Output:
10 10 20 30
11
12 Hidden Test Case:
13
14 Input:
15 10 20
16
17 Output:
18 10 20

樣例代碼:

1 li = list(map(int, input().split()))
2 print(li[0], li[1], li[2])

第一個測試case可以通過:

1 Input:
2 10 20 30
3
4 Output:
5 10 20 30

但是,對於隱藏的測試用例,列表中只有兩個值。所以 li[2]會觸發一個 Index Error,如下:

1 Input:
2 10 20
3
4 Output:
5 IndexError: list index out of range

5、解決方案

那麼我們要如何解決這個問題?嗯,這就是星號操作符的用武之地。您是否嘗試過在 print() 函數中在列表(或任何可迭代對象)前使用星號*。

實質上在函數print中使用它會將列表(或任何可迭代對象)中的每個元素作爲單獨的值傳遞,並在它們之間用空格打印它們,就像使用逗號手動操作一樣。

代碼如下:

1 li = list(map(int, input().split()))
2 print(*li)

我們來測試第一個用例:

1 Input:
2 10 20 30
3
4 Output:
5 10 20 30

接着測試隱藏的用例:

1 Input:
2 10 20
3
4 Output:
5 10 20

6、其他用法

事實上,可以將其擴展應用於任何可迭代對象。下面是使用字符串和 range()給出的一些示例。

樣例一:

1  s = 'medium'
2
3 print(*s)

輸出:

m e d i u m

樣例二:

1 print(*range(1, 6))
2 print(*range(4, 8))

輸出:

1 1 2 3 4 5
2
3 4 5 6 7

7、總結

看到這裏的小夥伴,想必這個功能對你來說是嶄新和有趣的嗎?
事實上,從大家最喜歡的編碼語言中瞭解學習新事物總是感覺很棒!

希望大家可以從現在開始使用此功能,並使編碼看起來更容易。

原文出處: AI算法之道
原文鏈結:https://mp.weixin.qq.com/s/RWoPvPkkKTz8WsANB8am3w

※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※

我是「數據分析那些事」。常年分享數據分析乾貨,不定期分享好用的職場技能工具。各位也可以關注我的Facebook,按讚我的臉書並私訊「10」,送你十週入門數據分析電子書唷!期待你與我互動起來~

文章推薦

餅圖變形記,肝了3000字,收藏就是學會!

MySQL必須掌握4種語言!

太實用了!4種方法教你輕鬆製作互動式儀表板!

跟資料打交道的人都得會的這8種資料模型,滿足工作中95%的需求

妙呀!一行Python程式碼

回顧十週入門數據分析系列文:

關注數據君的臉書:

我是「數據分析那些事」。常年分享數據分析乾貨,不定期分享好用的職場技能工具。按贊我的臉書,會有豐富資料包贈送唷!

--

--

數據分析那些事
數據分析那些事

Written by 數據分析那些事

這是一個專注於數據分析職場的內容部落格,聚焦一批數據分析愛好者,在這裡,我會分享數據分析相關知識點推送、(工具/書籍)等推薦、職場心得、熱點資訊剖析以及資源大盤點,希望同樣熱愛數據的我們一同進步! 臉書會有更多互動喔:https://www.facebook.com/shujvfenxi/

No responses yet