如果你在日常工作中經常使用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」,送你十週入門數據分析電子書唷!期待你與我互動起來~
文章推薦
◆跟資料打交道的人都得會的這8種資料模型,滿足工作中95%的需求
回顧十週入門數據分析系列文:
關注數據君的臉書:
我是「數據分析那些事」。常年分享數據分析乾貨,不定期分享好用的職場技能工具。按贊我的臉書,會有豐富資料包贈送唷!