3.Python列表操作

操作列表

1. for循環(huán)遍歷列表

for循環(huán)遍歷列表一般由下面元素組成:

  • for關(guān)鍵詞
  • 一個變量
  • in關(guān)鍵詞
  • 列表名
  • 冒號
  • 縮進(jìn)的語句塊

輸入:

names=['tom','jack','lisa','mike','andy']
count=0

for name in names:    #一定要有冒號
    print('\nhow do you do, '+name)    #有縮進(jìn)堡称,循環(huán)內(nèi)容
    print("Let's go to learn python!")    #有縮進(jìn),循環(huán)內(nèi)容
    count=count+1
    
print('\npython is the best programming language in this world')   #不在循環(huán)中
print('\ncount='+str(count))   #遍歷完列表中所有5個元素

輸出:

c:\py>names_for

how do you do, tom
Let's go to learn python!

how do you do, jack
Let's go to learn python!

how do you do, lisa
Let's go to learn python!

how do you do, mike
Let's go to learn python!

how do you do, andy
Let's go to learn python!

python is the best programming language in this world

count=5

注意:

  1. 只有縮進(jìn)的語句才會被循環(huán)
  2. for語句最后有冒號
  3. 最好for后面的變量名為單數(shù)形式涤姊,列表名為復(fù)數(shù)形式宵晚,這樣可以使程序更清楚采缚。

2. 用range()函數(shù)產(chǎn)生一個數(shù)字列表

range()函數(shù)解析:

range(x,y,z)函數(shù)有3個參數(shù)鹰椒,分別有以下作用:

  • x表示數(shù)列從x開始纲堵,包括x
  • y表示到y(tǒng)或超過y結(jié)束纤房,不包括y
  • z表示步長

注意:range()函數(shù)并不產(chǎn)生列表,他只是按參數(shù)要求舶沛,生成一系列數(shù)嘹承。要想轉(zhuǎn)為列表,需使用list()函數(shù)如庭。

輸入:

squres=[]

for  value in range(1,11,2):
    print(value)
    squres.append(value**2)     #將1-11之間的素數(shù)的平方添加到squres列表中
print(list(range(1,11,2)))      #需要使用list()函數(shù)將range()產(chǎn)生的一系列數(shù)轉(zhuǎn)換為列表
print(squres)       #打印squres列表

輸出:

c:\py>range
1
3
5
7
9
[1, 3, 5, 7, 9]
[1, 9, 25, 49, 81]

可以發(fā)現(xiàn)range產(chǎn)生了一系列數(shù):1,3,4,7,9叹卷。

3. 列表解析

列表解析是生成列表的簡潔方法,他的作用和上面的代碼一樣坪它,但是程序會簡潔很多骤竹。

輸入:

squres=[value**2 for value in range(1,11,2)]    

print(squres)       #打印squres列表

輸出:

c:\py>list_comprehension
[1, 9, 25, 49, 81]

4. 使用部分列表

(1)切片

輸入:

names=['tom','jack','lisa','mike','andy','ammy','peter']

print(names)
print(names[0:2])  #打印前2個
print(names[1:3])       #打印索引為1到索引為3-1的元素
print(names[3:])        #打印索引為3到最后
print(names[:3])        #打印列表頭到索引為3-1的元素
print(names[-3:])       #打印索引為-3到最后

print("\nhere are the last 4 names")
for name in names[-4:]:
    print (name)

輸出:

c:\py>names_slice
['tom', 'jack', 'lisa', 'mike', 'andy', 'ammy', 'peter']
['tom', 'jack']
['jack', 'lisa']
['mike', 'andy', 'ammy', 'peter']
['tom', 'jack', 'lisa']
['andy', 'ammy', 'peter']

here are the last 4 names
mike
andy
ammy
peter

注意: 切片 [x:y] 是指索引為x到索引為y-1之間的元素。

5. 復(fù)制列表

一定要使用切片來復(fù)制列表

輸入:

My_foods=['pizza','cake','ice cream']

friend_foods=My_foods[:]        #使用切邊復(fù)制列表
other_foods=My_foods        #注意往毡,這里并沒有用切片蒙揣,只是將兩個列表關(guān)聯(lián)起來

friend_foods.append('apple')
My_foods.append('orange')

print('My favorite foods:')
print(My_foods)
print("\nMy friend's favorite foods:")
print(friend_foods)
print("\nothers favorite foods:")
print(other_foods)      #列表與My_foods同步

輸出:

c:\py>copy_lists
My favorite foods:
['pizza', 'cake', 'ice cream', 'orange']

My friend's favorite foods:
['pizza', 'cake', 'ice cream', 'apple']

others favorite foods:
['pizza', 'cake', 'ice cream', 'orange']

注意: other_foods=My_foods并不能將My_foods列表賦值給other_foods列表,只是將兩個變量關(guān)聯(lián)起來开瞭,指向同一個列表懒震。由輸出可以看出,只將My_foods列表附加一個orange元素嗤详,但other_foods列表的元素與其同步變換个扰。

6. 元素不可變的列表--元組

  • 定義時,將列表的方括號換成圓括號葱色,列表即變成元組递宅。
  • 元組的元素不可變,但可以對整個變量重新賦值苍狰。
  • 元組可以被當(dāng)作列表办龄,用方括號進(jìn)行切片。

輸入:

My_foods=('pizza','cake','ice cream','apple')

print('My_foods:')
print(My_foods)

for food in My_foods[-2:]:
    print(food)
 #元組里的元素不可以改變淋昭,但是元組可以重新被賦值
My_foods=('pizza','cake','milk','orange')

print('\nMy_foods:')
print(My_foods)
c:\py>tuple
My_foods:
('pizza', 'cake', 'ice cream', 'apple')
ice cream
apple

My_foods:
('pizza', 'cake', 'milk', 'orange')
milk
orange
for food in My_foods[-2:]:
    print(food)

輸出

c:\py>tuple
My_foods:
('pizza', 'cake', 'ice cream', 'apple')
ice cream
apple

My_foods:
('pizza', 'cake', 'milk', 'orange')
milk
orange
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末俐填,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子响牛,更是在濱河造成了極大的恐慌玷禽,老刑警劉巖赫段,帶你破解...
    沈念sama閱讀 206,482評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件呀打,死亡現(xiàn)場離奇詭異,居然都是意外死亡糯笙,警方通過查閱死者的電腦和手機(jī)贬丛,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,377評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來给涕,“玉大人豺憔,你說我怎么就攤上這事额获。” “怎么了恭应?”我有些...
    開封第一講書人閱讀 152,762評論 0 342
  • 文/不壞的土叔 我叫張陵抄邀,是天一觀的道長。 經(jīng)常有香客問我昼榛,道長境肾,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,273評論 1 279
  • 正文 為了忘掉前任胆屿,我火速辦了婚禮奥喻,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘非迹。我一直安慰自己环鲤,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,289評論 5 373
  • 文/花漫 我一把揭開白布憎兽。 她就那樣靜靜地躺著冷离,像睡著了一般。 火紅的嫁衣襯著肌膚如雪纯命。 梳的紋絲不亂的頭發(fā)上酒朵,一...
    開封第一講書人閱讀 49,046評論 1 285
  • 那天,我揣著相機(jī)與錄音扎附,去河邊找鬼蔫耽。 笑死,一個胖子當(dāng)著我的面吹牛留夜,可吹牛的內(nèi)容都是我干的匙铡。 我是一名探鬼主播,決...
    沈念sama閱讀 38,351評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼碍粥,長吁一口氣:“原來是場噩夢啊……” “哼鳖眼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起嚼摩,我...
    開封第一講書人閱讀 36,988評論 0 259
  • 序言:老撾萬榮一對情侶失蹤钦讳,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后枕面,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體愿卒,經(jīng)...
    沈念sama閱讀 43,476評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,948評論 2 324
  • 正文 我和宋清朗相戀三年潮秘,在試婚紗的時候發(fā)現(xiàn)自己被綠了琼开。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,064評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡枕荞,死狀恐怖柜候,靈堂內(nèi)的尸體忽然破棺而出搞动,到底是詐尸還是另有隱情,我是刑警寧澤渣刷,帶...
    沈念sama閱讀 33,712評論 4 323
  • 正文 年R本政府宣布鹦肿,位于F島的核電站,受9級特大地震影響辅柴,放射性物質(zhì)發(fā)生泄漏狮惜。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,261評論 3 307
  • 文/蒙蒙 一碌识、第九天 我趴在偏房一處隱蔽的房頂上張望碾篡。 院中可真熱鬧,春花似錦筏餐、人聲如沸开泽。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,264評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽穆律。三九已至,卻和暖如春导俘,著一層夾襖步出監(jiān)牢的瞬間峦耘,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,486評論 1 262
  • 我被黑心中介騙來泰國打工旅薄, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留辅髓,地道東北人。 一個月前我還...
    沈念sama閱讀 45,511評論 2 354
  • 正文 我出身青樓少梁,卻偏偏與公主長得像洛口,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子凯沪,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,802評論 2 345

推薦閱讀更多精彩內(nèi)容