list

List

1、列表

    以[ ]括起來,每一個元素用","隔開,且能夠存放各類數據類型。java

    列表相比於字符串,不只能夠存放不一樣的數據類型,並且可存放大量的數據。32位python能夠存放:536870912個元素,64位能夠存放:1152921504606846975個元素。python

    列表是有序的(按照保存的順序),有索引,能夠切片方便取值。c++

    列表屬於可變數據類型。編程

1.索引

lst = ["python", "java", "c",  "c++", [11, 22,33]]

print(lst[0])  # python
print(lst[4][0]) # 11

2.切片

    列表切片後獲得仍是列表app

lst = [11, 22, 33, 44, 55, 66]

print(lst[0:3]) # [11, 22, 33] 
print(lst[1::2]) # [22, 44, 66]
print(lst[2::-1]) # [33,22,11]

3.增刪改查

1).增spa

  • append

    在列表末尾增長元素指針

lst = [11, 22, 33, 44]
lst.append(55)
print(lst) # [11, 22, 33, 44, 55]
  • insert
lst = [11, 22,33]
lst.insert(1, 55)
print(lst) # [11, 55, 22, 33]
  • extend

    迭代添加,增長的元素須爲可迭代對象,且添加位置爲末尾code

lst = [11, 22, 33]
lst.extend([55, 66]) # [11, 22, 33, 55, 66]
lst.extend("python") # [11, 22, 33, 55,66, 'p', 'y', 't', 'h', 'o', 'n']
lst.extend(44) # 報錯

2).刪除對象

  • pop

    默認刪除列表末尾元素,也可刪除指定位置元素,前提得提供索引。該刪除有返回值,返回值爲刪除的元素blog

lst = [11, 22, 33,  44, 55]
el = lst.pop() # 55
print(lst) # [11, 22, 33, 44]

lst.pop(2)
print(lst) # [11, 22, 44]
  • remove

      根據元素內容進行刪除,若列表中有多個相同的元素,則執行remove操做刪除的是第一個元素

lst = [11, 22, 33, 44]

lst.remove(44)
print(lst) # [11, 22, 33]
  • del

    切片刪除

lst = [11, 22, 33, 44, 55, 66]

del lst[0] 
print(lst) # [22, 33, 44, 55, 66]

del[1:4:2] 
print(lst) # [22, 44, 66]
  • clear

    清空列表

lst = [11, 22, 33, 44, 55]

lst.clear()
print(lst) # []

 3).修改

    指定索引修改

lst = [11, 22, 33, 44]

lst[2] = 55
print(lst) # [11, 22, 55, 44]

    根據切片修改,若是步長不是1,則修改的元素的個數與提供的元素個數須匹配。若是切片沒有步長或者步長是1,則不用關心個數

lst = [11, 22, 33, 44, 55]

lst[1:4] = '編程'
print(lst) # [11, "編", "程", 55]

lst = [11, 22, 33, 44, 55, 66]
lst[1:5:2] = "編程"
print(lst) # [11, "編", 33, "程", 55, 66]

 4).查詢

    列表是一個可打迭代對象,因此能夠進行for循環

for i in lst:
    print(i)

 4.其餘操做

  • count

    查詢某元素出現的次數

lst = [11, 22, 11, 44, 55, 66]

c = lst.count(11)
print(c) # 2
  • sort

    默認按升序排列,若需降序排列,只需在括號內添加reverse=True

lst = [11, 44, 33, 22, 55]

lst.sort()
print(lst) # [11, 22, 33, 44, 55]

lst.sort(reverse=True) print(lst) # [55, 44, 33, 22, 11]
  • reverse

    翻轉列表,無返回值

lst = [11, 33, 22, 55, 44]

lst.reverse()
print(lst) # [44, 55, 22, 33, 11]

5.列表嵌套

    採用降維操做

lst = [11, 22, [33, ["python", 55]], 66]

print(lst[1])  # 22

print(lst[2][0]) # 33

print(lst[2][1][0]) # p

lst[2][1][0] = lst[2][1][0].replace("p", "P")

print(lst) # [11, 22, [33, ['Python', 55]], 66]

lst[2].append(77)
print(lst) # [11, 22, [33, ["Python", 55], 77], 66]

 6.循環過程當中刪除列表元素問題

lst = [11, 22, 33, 44]

for i in lst:
    lst.remove(i)
print(lst) # [22, 44]

緣由:

    在for的運行過程當中,會有一個指針來記錄當前循環的元素是哪一個,一開始這個指針指向第0個,而後獲取到第0個元素。緊接着刪除第0個。這個時候,原來是第一個的元素會自動的變成第0個。而後指針向後移動一次,指向第1個元素。這時原來的1已經變成了0,也就不會被刪除了。

lst = [11, 22, 33, 44]
del_lst = []

for i in lst:
del_lst.append(i)

for i in del_lst:
lst.remove(i)

print(lst) # []

 注意:因爲刪除元素會致使元素的索引改變,因此容易出現問題。儘可能不要在循環中直接刪除元素。能夠把要刪除的元素添加到另外一個列表中而後批量刪除。

2、range

  • range(start, end, 步長)
  • 獲取元素的索引和元素
lst = ["語文", "數學", "英語","高數","體育"]
for i in range(len(lst)):
        print(i, lst[i])
相關文章
相關標籤/搜索