什么是python的列表推導式
乍一看到列表推導式你可能會感到疑惑。它們是一種創(chuàng)建和使用列表的簡潔方式。理解列表推導式是有用的,因為你可能在其他人的代碼里看到列表推導式。下面來了解下列表推導式吧。
數字列表的推導式
回顧之前學過的知識,我們可以創(chuàng)建一個包含前10個數字的列表,如下所示:
squares = [] for number in range(1,11): new_square = number**2 squares.append(new_square) for square in squares: print(square)
上述代碼中我們實現了創(chuàng)建包含10個數字的列表,對每個數字作平方操作并將它們存儲進新的數組的功能。代碼略顯冗長,我們可以省略 for 循環(huán)中的 new_square 參數,簡化代碼。使用列表推導式就可以進一步簡化代碼,如下所示:
squares = [number**2 for number in range(1,11)] for square in squares: print(square)
平方操作和生成新列表的過程都濃縮進了一行代碼。你是不是已經暈頭轉向了,讓我們來看看這行代碼發(fā)生了什么。
首先我們定義了一個列表,名字為 squares 。
接下來看看列表中括號中的代碼:
for number in range(1, 11)
它在1-10之間創(chuàng)建一個循環(huán),把每個數字存儲到變量 number 中。接下來我們看一看對每次循環(huán)中的 number 作了哪些操作。
number**2
每個 number 都作了平方操作,并將結果存儲在了定義好的隊列中。我們可以用如下語言來閱讀這行代碼:
squares = [raise number to the second power, for each number in the range 1-10]
其他例子
上個例子是對數字作平方操作,下列代碼是對數字作乘操作,仔細閱讀代碼,體會數字列表表達式的用法。
# Make an empty list that will hold the even numbers. evens = [] # Loop through the numbers 1-10, double each one, and add it to our list. for number in range(1,11): evens.append(number*2) # Show that our list is correct: for even in evens: print(even)
非數字列表的推導式
我們也可以在非數字列表中運用推導式。在下面的例子中,我們會創(chuàng)建一個非數字列表,然后利用推導式生成一個新的列表。不運用推導式的源代碼如下所示:
# Consider some students. students = ['bernice', 'aaron', 'cody'] # Let's turn them into great students. great_students = [] for student in students: great_students.append(student.title() + " the great!") # Let's greet each great student. for great_student in great_students: print("Hello, " + great_student)
我們想寫下如下所示的推導式:
great_students = [add 'the great' to each student, for each student in the list of students]
代碼如下所示:
# Consider some students. students = ['bernice', 'aaron', 'cody'] # Let's turn them into great students. great_students = [student.title() + " the great!" for student in students] # Let's greet each great student. for great_student in great_students: print("Hello, " + great_student)
擴展練習:
生成一個[[1,2,3],[4,5,6]....]的列表最大值在100以內
首先考慮一下正常情況我們應該怎么寫
a = [] for x in range(1,100,3): a.append([x,x+1,x+2])
然后再把它轉換成列表推導式
a = [[x,x+1,x+2] for x in range(1,100,3)]
以上就是什么是python的列表推導式的詳細內容,更多關于python列表推導式的含義及用法的資料請關注腳本之家其它相關文章!
- Python之列表推導式最全匯總(上篇)
- Python之列表推導式最全匯總(中篇)
- python中列表推導式與生成器表達式對比詳解
- Python列表推導式,元組推導式,字典推導式,集合推導式
- Python的列表推導式你了解嗎
- python列表推導式的原理及使用方法
- python列表推導式實現找出列表中長度大于5的名字
- Python 列表推導式與字典推導式的實現
- Python列表推導式詳情
- python列表推導式 經典代碼
- Python 列表推導式需要注意的地方
- Python列表推導式實現代碼實例
- python列表推導式入門學習解析
- python之列表推導式的用法
- python列表推導式操作解析
- python 列表推導式使用詳解
- 簡單了解python 生成器 列表推導式 生成器表達式
- Python之列表推導式最全匯總(下篇)
相關文章
Python+Selenium實現在Geoserver批量發(fā)布Mongo矢量數據
這篇文章主要為大家詳細介紹了如何利用Python+Selenium實現在 Geoserver批量發(fā)布來自Mongo中的矢量數據,文中的示例代碼講解詳細,感興趣的小伙伴可以了解一下2022-07-07