python基礎 列表解析式簡單應用

2021-10-09 22:59:29 字數 1997 閱讀 6357

總結python基礎之列表解析式簡單應用

列表解析list comprehensions

表示式:[expression for iter_val in iterable if cond_expr]

[expression]:最後執行的結果

[for iter_val in iterable]:這個可以是乙個多層迴圈

[if cond_expr]:兩個for間是不能有判斷語句的,判斷語句只能在最後;順序不定,預設是左到右。

列表解析式是將乙個列表(實際上適用於任何可迭代物件(iterable))轉換成另乙個列表的方法。在轉換過程中,可以指定元素必須符合一定的條件,才能新增至新的列表中,這樣每個元素都可以按需要進行轉換。

(示例):

生成乙個從1~n的平方的列表,如,輸入 5

生成 l=[1,4,9,16,25]

普遍for迴圈做法:

l =

n =eval

(input

("請輸入n:"))

for i in range(1

,n+1):

l.(i**2)

print

(l)

輸出5,則輸出結果如下

而此時我們引用列表解析式

n =

eval

(input

("請輸入n:"))

l =[i**2

for i in range(1

,n+1)]

print

(l)

或者我們直接直接合併上述三行**,同樣能生成有序平方列表

print

([i**2

for i in range(1

,eval

(input

("請輸入n:"))

1. 編寫程式,輸入乙個字串s,

輸出其每個字元的ascii碼構成的列表l,

即l中的每個元素是s中每個字元的ascii碼。

print([

ord(i)

for i in input

("請輸入乙個字串: ")]

2.程式設計計算前n個自然數的立方和,其中n的值由使用者提供

print

(sum

([i**3

for i in range(1

,int

(input

("請輸入n的值:"))

+1)]

))

如果我們學過c語言,就不難發現,python**風格十分簡潔明瞭,正是因為有了大量的庫函式和解釋性的語法,使得**變得簡單易懂。可能同樣的一道程式設計題目,python**量不及c語言的三分之一…由此可見python的魅力之一

同時,我們也能在列表解析式中使用if條件,比如計算前n個能被3整除的自然數

print

([i for i in range(1

,eval

(input

("請輸入n:"))

+1)if i%3==0])

今天總結的python列表解析表示式就這樣了,可能受限於個人能力及時間,寫的略顯倉促,很多原理上的東西還需要在深入研究,本人也只是應用層面,未曾向許多大牛一樣有原始碼級的理解…

江湖路漫漫,學習程式設計也正是乙個不斷積累的過程,此部落格紀念初學python的自己。

Python列表解析式

有時候,乙個程式設計設計模式使用得十分普遍,甚至會逐步形成自己獨特的語法。python程式語言中的列表解析式 list comprehension 就是這類語法糖 syntactic sugar 的絕佳代表。python中的 列表解析式 是個偉大的發明,但是要掌握好這個語法則有些難,因為它們並是用來...

python 列表解析式

python的列表解析式只是為了解決已有問題提供新的語法 什麼是列表解析式?列表解析式是將乙個列表轉換成另乙個列表的工具。在轉換過程中,可以指定元素必須符合一定的條件,才能新增至新的列表中,這樣每個元素都可以按需要進行轉換。可以把列表解析式看作為結合了filter函式與map函式功能的語法糖 dou...

Python列表解析(列表推導式)

列表解析 用來動態地建立列表 expr for iter var in iterable if cond expr 例子一 map lambda x x 2,range 6 0,1,4,9,16,25 x 2 for x in range 6 0,1,4,9,16,25 列表解析式可以取代內建的ma...