日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

python 只取数值_Python:你会生成列表吗?-- 列表生成式

發布時間:2025/3/19 64 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python 只取数值_Python:你会生成列表吗?-- 列表生成式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

當有人問你:“你會用 Python 生成列表嗎?”

我想你一定會說:“當然會啊,這有什么難的。”

那人再問:“那你會列表生成式嗎?”

你:“啊?好像不會。”

好的,現在我已經成功用一個巧妙地開頭帶入了今天的主題

那么我們今天就來說一說 Python 的列表生成式,如果您已經很熟練了,那可真棒!不會的我們繼續學下去,一般來說,如果我們要用 Python 來定義一個列表,要求列表里的元素是 0~9,我們可能會選擇這么做:

a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

很好,這樣的做法顯然很聰明,但是還有更聰明的:

a = list(range(10))

這兩種方法都可以滿足我們的要求,但是很顯然第二種更優秀,不過我相信這樣的列表大家都沒問題,然后我們現在有一個更無理的要求,我想要生成一個這樣的列表:

[1, 4, 9, 16, 25, 36, 49, 64, 81]

這時你會怎么做呢?我先來介紹一種最基礎的方法吧:

a = [] #創建一個空列表

for i in range(1, 10):

a.append(i * i) #往列表里添加元素

就是使用循環,遍歷 1~9 將每個元素的平方一次存入已經創建好的空列表 a,接下來,我們今天的主角就要入場了,還記得昨天的文章里提到過的列表生成式吧

我們現在先來解決當下這個問題,最后再來回顧一下昨天的問題,現在用列表生成式來創建一個滿足上訴要求的列表:

a = [i * i for i in range(1, 10)]

其實這個可以看做是將上一個方法的循環直接放在列表里進行操作,列表 a 里存放的就是 i * i,不過 i 是屬于 1~9 的,這就叫列表生成式,那昨天哪個問題其實也很簡單嘛,先回顧一下代碼:

list = ["%d%02d" % (2019, m + 1) for m in range(12)]

這是要構建一個 2019xx 格式的日期,列表生成式是用來生成 xx 的月份元素的,即從 0~11 依次取一個數 m,然后 m + 1 就是需要的月份,好了,學會了基本的列表生成式我們現在開始進階

我們現在又有了一個更無理的要求,我們要定義一個這樣的列表:

[4, 16, 36, 64]

分析一哈,就是上一個無理要求但是只要偶數的平方嘛,那我們這個列表生成式怎么寫呢?

a = [i * i for i in range(1, 10) if i % 2 == 0]

這就是在上一個列表生成式的基礎上加了一個 if 判斷,只取 1~9 中的偶數,現在這個要求也簡單完成了,我們又提出了一個更無理的要求,我們要生成一個這樣的列表:

['1A', '2B', '3C']

這個其實更好理解了,來看一下用列表生成式怎么用:

a = [x + y for x in '123' for y in 'ABC']

這個就不解釋了,很簡單吧,當然這樣也可以用三層循環等多層循環,以上就是今天要講的全部內容了

留個課堂作業:生成一副撲克牌的點數和花色(除大小王以外),例如:

[(2, '梅花'), (2, '方塊'), (2, '紅桃'), (2, '黑桃'), (3, '梅花'), ..., (A, '梅花'), (A, '方塊'), (A, '紅桃'), (A, '黑桃')]

答案不唯一啊

總結

以上是生活随笔為你收集整理的python 只取数值_Python:你会生成列表吗?-- 列表生成式的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。