1、遍歷list
(1)、for 循環迭代
(2)、while循環索引
實例:
li = [1 , 2 , 3 , 4 , 5 , 6]
for x in li:
print x,
print ''
print '------------------------------'
i = 0
while i < len(li):
print li[i],
i += 1
(3)、多重列表遍歷
實例:li = [1 , 2 , [ 3 , 4 , 5 , 6] , 7 , 8, [9 , 10] ] 按1~10讀出
False:
for x in li:
for y in x:
print y,
True:
for x in li: #結果 1 2 3 4 5 6 7 8 9 10
if type(x) == list:
for y in x:
print y,
else :
print x,
type函數的使用:判斷數據類型
想一想:li = [1 , 2 , [ 3 , 4 , 5 , 6] ,( 7 , 8 ), [9 , 10] ] 按1~10讀出
列表裏牽扯元祖又該如何遍歷?
2、清空列表
實例:
l1 = []
l1[:] = []
del l1[:]
3、列表模擬棧和隊列(是兩種非常有用的數據結構)
實例:
(1)、棧:先進後出
li = [1 , 2 , 3 , 4 , 5 , 6]
li.append(7) #相當於進棧,push()函數
li.pop() #相當於C語言裏的top()和pop()函數
print '--------------------------'
(2)、隊列:先進先出
li = [1 , 2 , 3 , 4 , 5 , 6]
li.pop(0) #取隊列首元素,相當於pop()和front()函數
li.append(7) #相當於進隊,push()函數
4、列表去重(由麻煩到簡單)
(1)、pop()去重
藉助pop函數刪除每個數以後的所有與他重複的數
實例:
li = [ 1, 1 , 2 , 3 , 1 , 1 , 2 , 3 , 5 , 7 , 9 , 1 , 2]
i = 0
while i <len(li):
pf = li.index(li[i])
if li.count(li[i]) > 1:
li.pop(li.index(li[i] , pf + 1))
i -= 1
i += 1
print li
藉助於另一個列表,起到類似於集合去重的作用
實例:
li = [ 1, 1 , 2 , 3 , 1 , 1 , 2 , 3 , 5 , 7 , 9 , 1 , 2]
li2 = []
for x in li:
if x not in li2:
li2.append(x)
li = li2[:]
print li
直接利用集合裏的元素不能相同,去重,最爲簡單
實例:
li = [ 1, 1 , 2 , 3 , 1 , 1 , 2 , 3 , 5 , 7 , 9 , 1 , 2]
li = list(set(li))
print li
(4)、還可以利用二重循環,列表切片的知識去重,但較爲麻煩,可以自己試着想一下