华南俳烁实业有限公司

python

當(dāng)前位置:中華考試網(wǎng) >> python >> python編程基礎(chǔ) >> 文章內(nèi)容

python列表推導(dǎo)式是什么?

來源:中華考試網(wǎng)  [2020年9月30日]  【

  乍一看到列表推導(dǎo)式你可能會感到疑惑。它們是一種創(chuàng)建和使用列表的簡潔方式。理解列表推導(dǎo)式是有用的,因?yàn)槟憧赡茉谄渌说拇a里看到列表推導(dǎo)式。下面來了解下列表推導(dǎo)式吧。

  數(shù)字列表的推導(dǎo)式

  回顧之前學(xué)過的知識,我們可以創(chuàng)建一個(gè)包含前10個(gè)數(shù)字的列表,如下所示:

  squares = []

  for number in range(1,11):

  new_square = number**2

  squares.append(new_square)

  for square in squares:

  print(square)

  上述代碼中我們實(shí)現(xiàn)了創(chuàng)建包含10個(gè)數(shù)字的列表,對每個(gè)數(shù)字作平方操作并將它們存儲進(jìn)新的數(shù)組的功能。代碼略顯冗長,我們可以省略 for 循環(huán)中的 new_square 參數(shù),簡化代碼。使用列表推導(dǎo)式就可以進(jìn)一步簡化代碼,如下所示:

  squares = [number**2 for number in range(1,11)]

  for square in squares:

  print(square)

  平方操作和生成新列表的過程都濃縮進(jìn)了一行代碼。你是不是已經(jīng)暈頭轉(zhuǎn)向了,讓我們來看看這行代碼發(fā)生了什么。

  首先我們定義了一個(gè)列表,名字為 squares 。

  接下來看看列表中括號中的代碼:

  for number in range(1, 11)

  它在1-10之間創(chuàng)建一個(gè)循環(huán),把每個(gè)數(shù)字存儲到變量 number 中。接下來我們看一看對每次循環(huán)中的 number 作了哪些操作。

  number**2

  每個(gè) number 都作了平方操作,并將結(jié)果存儲在了定義好的隊(duì)列中。我們可以用如下語言來閱讀這行代碼:

  squares = [raise number to the second power, for each number in the range 1-10]、

  其他例子

  上個(gè)例子是對數(shù)字作平方操作,下列代碼是對數(shù)字作乘操作,仔細(xì)閱讀代碼,體會數(shù)字列表表達(dá)式的用法。

  # 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)

  非數(shù)字列表的推導(dǎo)式

  我們也可以在非數(shù)字列表中運(yùn)用推導(dǎo)式。在下面的例子中,我們會創(chuàng)建一個(gè)非數(shù)字列表,然后利用推導(dǎo)式生成一個(gè)新的列表。不運(yùn)用推導(dǎo)式的源代碼如下所示:

  # 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)

  我們想寫下如下所示的推導(dǎo)式:

  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)

責(zé)編:hym
  • 會計(jì)考試
  • 建筑工程
  • 職業(yè)資格
  • 醫(yī)藥考試
  • 外語考試
  • 學(xué)歷考試
福建省| 全椒县| 陕西省| 祁门县| 凯里市| 罗平县| 吉安市| 浦江县| 镇江市| 洪雅县| 侯马市| 菏泽市| 滦平县| 郴州市| 彰化县| 政和县| 天峨县| 浑源县| 灵璧县| 清远市| 大理市| 鄯善县| 澜沧| 专栏| 称多县| 青海省| 丹寨县| 益阳市| 集安市| 河津市| 双流县| 响水县| 河东区| 遵义市| 阿鲁科尔沁旗| 瑞昌市| 炎陵县| 武宣县| 化州市| 南宁市| 益阳市|