日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

05 切片、迭代、列表生成

發(fā)布時(shí)間:2023/11/30 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 05 切片、迭代、列表生成 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

切片

>>> L = ['Adam', 'Lisa', 'Bart', 'Paul']

>>> L[0:3]??? #取前3個(gè)元素

>>> L[:3]

>>> L[1:3]

>>> L[:]

>>> L[::2]?? #第三個(gè)參數(shù)表示每2個(gè)元素取一個(gè)元素,也就是隔一個(gè)取一個(gè)?['Adam','Bart']

>>> range(1, 101)??? #創(chuàng)建一個(gè)數(shù)列[1, 2, 3, ..., 100]

>>> L[-2:]??? #['Bart', 'Paul']

>>> L[:-2]??? #['Adam', 'Lisa']

>>> L[-4:-1:2]??? # ['Adam','Bart']

>>> 'ABCDEFG'[:3]??? #'ABC'

>>> 'ABCDEFG'[-3:]??? #'EFG'

>>> 'ABCDEFG'[::2]??? #'ACEG'

?

迭代

Python的for循環(huán)可以作用在任何可迭代對(duì)象上。

迭代操作就是對(duì)于一個(gè)集合,依次取出集合的每一個(gè)元素。

1 有序集合:list? tuple? str? unicode

2 無(wú)序集合:set

3 無(wú)序key-value對(duì):dict

?

在Python中,迭代取出的元素的本身,而不是元素的索引。

索引迭代:

使用enumerate()函數(shù)

L = ['Adam', 'Lisa', 'Bart', 'Paul']

for index, name in enumerate(L)

??? print index, '-', name

?

實(shí)際上,enumerate()函數(shù)把 ['Adam', 'Lisa', 'Bart', 'Paul']變成了 [(0, 'Adam'), (1, 'Lisa'), (2, 'Bart'), (3, 'Paul')]。

因此,迭代的每一個(gè)元素實(shí)際上是一個(gè)tuple。

for t in enumerate(L)

??? index = t[0]

??? name = t[1]

??? print index, '-', name

?

zip()函數(shù)可以把兩個(gè)list變成一個(gè)list。

>>> zip([10, 20, 30], ['A', 'B', 'C'])??? #[(10, 'A'), (20, 'B'), (30, 'C')]

?

對(duì)dict的迭代:

1、直接迭代,每次拿到dict的一個(gè)key;

2、調(diào)用values()方法,得到dict的values的list;itervalues()方法與values()方法的效果完全一樣。

values()方法實(shí)際把一個(gè)dict轉(zhuǎn)換成包含value的list;

itervalues()方法在迭代過程中依次從dict中取出value。

后者比前者省內(nèi)存。

?

同時(shí)對(duì)key和value進(jìn)行迭代:

items()方法和iteritems()方法

for key, value in d.items():

??? print key, ':', value

?

列表生成式

>>> range(1, 11)??? #[1, 2, 3, ..., 10]

>>> [x*x for x in range(1, 11)]??? #[1, 4, 9, ..., 100]

>>> [x*x for x in range(1, 11) if x%2 == 0]

>>> isinstance(x, str)??? #判斷x是否為字符串,字符串的upper()方法可以返回大寫

>>> [m + n for m in 'ABC' for n in '123']??? #['A1', 'A2', 'A3', 'B1', 'B2', 'B3', 'C1', 'C2', 'C3']

?

?

總結(jié)

以上是生活随笔為你收集整理的05 切片、迭代、列表生成的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。