個人筆記 Python 列表與列表生成式

2022-09-09 07:09:15 字數 4311 閱讀 5641

在python語言中,所謂的列表生成式,就是說可以生成list列表的表示式,是python內建的一種強大的功能。

1.1、python 列表(list)

python裡面[  ]  表示乙個列表

列表是最常用的python資料型別

建立乙個列表,只要把逗號分隔的不同的資料項使用方括號括起來即可。如下所示:

list = [1,2,3,4,5,6,7]
序列都可以進行的操作包括索引,切片,加,乘,檢查成員。索引的值從0開始,也可以從最後乙個開始數,那麼最後乙個就是倒數第一,也就是-1,以此類推

list_num = [1, 2, 3, 4, 5, 6, 7]

#輸出索引為0的值並列印

print

(list_num[0])

#輸出索引為-1的值並列印

print(list_num[-1])

#用索引值來修改列表

list_num[3] = 10

#列印列表

print(list_num)

列印結果如下

對列表進行切片操作:

list_num = [1, 2, 3, 4, 5, 6, 7]

#對列表進行切片操作 切片遵循左閉右開原則

list_num1 = list_num[0:-1]

#列印列表list_num1

print(list_num1)

列印結果如下

1.2、快速生成乙個列表

快速生成乙個列表可以用range()函式來生成:

注意:此時提到了rangge函式

概念:range() 函式可建立乙個整數列表,一般用在 for 迴圈中。

range(起始值,終止值,步長)     遵循左閉右開

#

使用range()函式快速生成列表

#首先定義乙個空列表

list_num =

#使用for迴圈編列range函式,range函式同樣遵循左閉右開原則

for i in range(0, 10):

##列印列表

print(list_num)

輸出結果:

1.2使用列表生成式

列表生成式簡而言之:用乙個表示式即可生成列表

上面我們使用了for迴圈和range函式來快速生成了乙個列表,那麼怎麼用乙個表示式來生成乙個列表呢?下面我們來看看答案:

#

首先定義乙個列表

list_a = [1, 2, 3, 4, 5]

#使用列表生成式

list_b =[x for x in

list_a]

#列印列表list_b

print(list_b)

輸出結果:

2.案列

1> 已知列表list = ["python","is","easy"]【使用列表生成式實現】,生成乙個新的列表,並且結果大小寫字母互換。

#

已知列表list = ["python","is","easy"]【使用列表生成式實現】,生成乙個新的列表,並且結果大小寫字母互換

#首先了解大小寫互換函式

a = '

abcd

'print('

大小寫轉換函式swapcase()')

print

(a.swapcase())

list_one = ["

python

", "

is", "

easy"]

print('

源列表:

' +str(list_one))

#定義普通轉換方法的函式

defstring_td(a):

list_two =

#普通方法

for i in

a:

return

list_two

print('

下面輸出普通方法(for遍歷)轉換結果:')

#呼叫函式

print

(string_td(list_one))

#使用列表生成式

print('

下面使用列表生成式轉換:')

list_three = [x.swapcase() for x in

list_one]

print(list_three)

輸出結果:

2>如果想對乙個列表裡面的資料篩選,比如:[1, 3, -3, 4, -2, 8, -7, 6],找出大於0的數,按正常思維可以for迴圈挨個判斷,符合條件的放到新的列表

#

如果想對乙個列表裡面的資料篩選,比如:[57, 3, -3, 4, 9, -8, 11, -66],找出大於0的數

#按正常思維可以for迴圈挨個判斷,符合條件的放到新的列表

#定義乙個列表

list_a = [57, 3, -3, 4, 9, -8, 11, -66]

#定義乙個空列表,儲存需要的資料

list_b =

#for迴圈遍歷列表list_a

for i in

list_a:

#加入判斷篩選資料

if i >0:

#大於0的資料追加到list_b

#列印list_b

print

(list_b)

#使用列表生成式

list_c = [x for x in list_a if x >0]

print(list_c)

輸出結果:

3>前面兩個案列列表生成式都只傳乙個引數x,如果有兩個列表如何去運算呢?

舉例:a = [1,2,3]      b = [ 'a' , 'b' , 'c' ]     生成 ls = [ 'a1' , 'b2' , 'c3 '

先來看看普通for迴圈:

#

舉例:a = [1,2,3] b = [ 'a' , 'b' , 'c' ] 生成 ls = [ 'a1' , 'b2' , 'c3 '

a = [1, 2, 3]

b = ['

a', '

b', 'c'

]ls =

#獲取0,1,2,用作原始列表的下標,索引原始列表的元素,以便於操作

for i in range(0, 3):

#int和str不能直接拼接,先將int轉為str

x = b[i] +str(a[i])

print(ls)

輸出結果:

使用列表生成式:

#

舉例:a = [1,2,3] b = [ 'a' , 'b' , 'c' ] 生成 ls = [ 'a1' , 'b2' , 'c3 '

a = [1, 2, 3]

b = ['

a', '

b', 'c'

]ls =

## 獲取0,1,2,用作原始列表的下標,索引原始列表的元素,以便於操作

#for i in range(0, 3):

## int和str不能直接拼接,先將int轉為str

#x = b[i] + str(a[i])##

print(ls)

#使用列表生成式

ls_1 = [x + str(i) for i, x in

zip(a, b)]

print(ls_1)

輸出結果:

待續.....

2019-11-30

01:39:36

Python筆記 列表

python中列表是list,我們可以通過列表的索引獲取相應的元素。list test hello 1,2,3,4.0,5.0,6.0,true,false list test 1 1 list test 0 hello 以上面的list test列表做例子 list test 1 4 1,2,3 ...

Python學習筆記 列表與元組

s cat molle remedy supplement print s 0 a s int 1.0 print a 二維列表 s2 cat vain 1,2,3,4,5 b s2 0 c s2 0 1 print b,c 負數下標 print s 1 s 3 切片print s 0 3 s 1 ...

python列表與列表演算法詳解 2

目錄 操作需求 1 用列表物件記錄三酷貓每天釣魚的種類和數量 2 統計三酷貓所釣水產品的總數量和預計收穫金額 3 列印財務報表一張。三酷貓列表記賬 nums 0 統計數量變數 amount 0 統計金額數量 i 0 迴圈控制變數 fish record 1月1日 鯽魚 18,10.5,1月1日 鯉魚...