我們在對list或者tuple的元素進行取值時,一般的方法是這樣的:
>>>l =[1,2,3]
>>>l[0]
>>>l[1]
>>>l[2]
或者使用迴圈來獲取
>>>l =
>>>n = 2
>>>for i in range(n)
l
python提供了更加簡便的方法能讓我們獲取這些值,那就是切片(slice)
>>>list = [1,2,3,4,5]
>>>#取list集合中的第0個到第3個元素,如果是從0開始取,0可以省略
>>>list[0:3]
[1, 2, 3]
也可以倒過來取
>>>list = [1,2,3,4,5]
>>>#記住最後乙個元素的索引是-1
>>> list[-1:]
[5]>>> list[-5:]
[1, 2, 3, 4, 5]
>>>
也可以按每x個取乙個
>>> temp = list(range(10))
>>> temp[:10:2]
[0, 2, 4, 6, 8]
字串也可以看作是一種list,同樣可以通過切片的方法來取字串的字元
>>> str = 'abcdefg'
>>> str[0:3]
'abc'
一般來說,我們用for...in
遍歷集合的過程,就稱為迭代(iteration)
迭代list和tuple
>>> l = [1,2,3,4,5]
>>> for i in l:
... print(i)
...123
45>>> l = (1,2,3,4,5)
>>> for i in l:
... print(i)
...123
45
迭代dict,可以通過for...in...
迭代dict
的key
>>> dict =
>>> for key in dict:
... print(key)
...
name
agehight
迭代dict
的value
,需要使用dict.values()
方法
>>> for value in dict.values():
... print(value)
...
lily
21161
也可以同時迭代key
和value
,需要使用dict.items()
方法
>>> for key,value in dict.items():
... print(key,value)
...
name lily
age 21
hight 161
迭代字串
>>> str = 'abcdefg'
>>> for ch in str:
... print(ch)
... ab
cdef
g
迭代list集合中的索引-元素對,可以使用enumerate將list變成索引-元素對
>>> for x,y in enumerate([1,2,3,4,5]):
... print(x,':',y)
...0 : 1
1 : 2
2 : 3
3 : 4
4 : 5
△判斷乙個物件是否可迭代,可以通過collection模組的lterable型別來判斷:
>>>
from collections import iterable
>>> isinstance('abc',iterable)
true
>>> isinstance('123',iterable)
true
>>> isinstance(123,iterable)
false
>>>
Python之切片和迭代
l a b c d l 0 3 表示取前三個元素,當從索引0開始取的時候,0可以省略,寫作為l 3 l 表示從頭到尾。l 1 10 2 表示從索引號為1的開始到索引號為10的結束,不包括索引號為10的元素,每2個取出乙個,即隔乙個取乙個。tuple切片與list相同。range 可以建立乙個數列 r...
python 切片,迭代
切片 slice 操作符 其格式為 列表 元組 名 舉個例子 我們想提取前三科成績 score 數學 90 語文 89 英語 87 物理 77 化學 90 print score 0 3 結果 數學 90 語文 89 英語 87 像上面的例子score 0 3 表示的是從索引0開始取,直到索引3為止...
學python(9) 快速排序
第一種 快速排序 defkp ls 判斷要操作的列表長度是否大於1 if len ls 1 如果列表只有乙個數,則直接返回列表 return ls 定義兩個列表儲存相對較大的數和相對較小的數 maxa mina 這次選擇用第乙個數作為分割標準 遍歷除了第乙個資料的列表 for i in ls 1 判...