1. 程式人生 > >day004 list、tuple、range

day004 list、tuple、range

一、列表(list)

1、介紹

* 能裝物件的物件(類似於書包),有順序(按照我們新增的順序)
* 用[] 表示,可以放任意資料,每個元素用逗號( ,)隔開
* 同樣用索引和切片

索引

    lst[0]  # 獲取第一個元素
    可以修改,lst[3] = "一個人"

切片

    lst[0: 3] # 切片0到2,步長預設為1
    lst[2: : -1] # 倒著切片,用步長為-1控制

2、列表的增刪改查

1、增加, 因為list可變所以直接在原來物件上操作

lst = [11, 22, 33,]
lst.append("wusir")  # 將"wusir"新增到list的末尾
lst.insert[1, "劉德華")  # 指定位置插入元素,原來的元素向後移一位
lst.extend(可迭代物件)  #  迭代新增,在原list末尾迭代新增

2、刪除

lst.pop()  # 預設刪除最後一個
lst.pop(2)  # 指定刪除2號元素
lst.remove('捅破天')   # 刪除指定元素, 如果是不存在的元素會報錯
lst.clear()     # 清空list
del lst[1: 3]    # 切片刪除

3、修改

lst[1] = "太汙"   # 把1號元素修改成太汙
lst[1: 4: 3] = ["馬虎疼", "歐哈依"]   # 切片修改也行,如果步長不是1,要注意,元素個數
lst[1: 4] = ["一天天"]     # 切片如果沒有步長或步長為1,則不用關心個數

4、查詢, 列表是一個可以迭代物件,所以可以進行for迴圈

for e2 in lst:
    print(e2)   # 輸出每一個元素

5、其他操作

1、查詢出現次數 count

c = lst.count("太白")     # 查詢太白出現的次數

2、排序 sort

lst.sort()  # 排序,預設升序
lst.sort(reverse = True)    # 降序

3、翻轉元素順序(倒序) reverse

lst.reverse()   # 將[1, 3, 2, 4] -->  [4, 2, 3, 1]

4、列表長度

        len(lst)    # 計算列表的長度

5、查詢索引 index

lst.index(元素)       # 通過元素查詢索引

3、列表的巢狀

採用降維操作,一層一層的看就好
lst = [1, "太白", "wusir", ["馬虎疼", ["可口可樂"], "王林"]]
print(lst[2])       # 找到"wusir"
print(lst[1: 3]      # 找到太白和wusir
print(lst[1][1])       # 列印太白的白字
# 將 wusir拿到,然後首字母大寫,再輸入列表

二、元組和元組巢狀 tuple

tuple: 只讀列表
由 () 組成     特點: 不可變,
如果只有一個元素,末尾要加 , 不然不是tuple
不可變:指的是元組內部第一層元素的記憶體地址不可變

索引

print(tu[2])

切片

print(tu[2: 5]) # 切片後還是元組

for 迴圈遍歷元組

for el in tu:
    print(el)

嘗試修改元組

tu = ("水牛", "哈哈哈", [], "呵呵")
***錯誤的修改*** 
tu[1] = '馬蜂'  
#報錯  TypeError: 'tuple' object does not support item assignment
tu[2].append("麻將臺")     # 不可變是指,子元素不可變,
子元素內部的子元素是可以變得,這個取決於元素是否為可變物件

三、 range

for num in range(10):
    print(num)
for num in range(1, 10, 2):
    print(num)
for num in range(10, 1, -2):    # 反著來, 和切片一樣 10, 9,
    print(num)