列表和元組

1.列表的定義python

定義: 能裝對象的對象app

在python中使用 []來描述列表, 內部元素用逗號隔開. 對數據類型沒有要求動畫

lst = ["光頭強", 1, True, {}, (1, ), {123}, ["周杰倫",[], "周杰", "結論"]]
print(lst)

 

列表存在索引和切片. 和字符串是同樣的.spa

lst = ["天龍八部", "西遊記", "紅樓夢", "銀平煤", "綠平煤"]
print(lst[3])
print(lst[-3])
print(lst)
print(lst[1:4]) # 切片,原來是什麼類型. 獲得的就是什麼類型
print(lst[-1::-2]) # 倒着切

 

 

2.相關的"增刪改查"操做 (這裏重點!!!敲黑板!!!!!)code

添加:對象

     ①append()         追加,  在後面添加blog

     ② insert(位置,元素)        插入指定元素,   按照索引添加排序

     ③expend     迭代添加,  把傳遞進去的參數進行迭代,把每一項添加到列表的末尾索引

 

lst = ["凡人修仙傳", "誅仙", "神墓"]
# 添加 append() 追加. 在後面添加
lst.append("看見")
lst.append("追風箏的人")

# 插入 insert(位置, 元素), 效率相對比較低
lst.insert(1, "琴帝")

# 迭代添加, 把傳遞進去的參數進行迭代. 把每一項添加到列表的末尾
lst.extend(["胡辣湯","豬蹄子", "豬頭肉", "五花肉"])

print(lst)

 

 

 

刪除:rem

      ①pop(索引)         根據索引刪除,  默認從後往前刪

      ②remove(元素)     根據元素刪除,  當元素不存在時就會報錯

       ③del    例:del lst[::2]       用切片或者索引刪除,不經常使用!!!

        ④clear     例: lst:clear     清空!

修改:

        索引修改

        lst[索引] = 元素

 

lst = ["蘇秦", "武大", "武二", "寶元", "李誕", "池子", "王建國"]
lst[3] = "松江" # 經過索引修改  index out of range 索引下標越界# # print(lst)
lst[1:3] = ["麻花藤"] # 迭代更新(不經常使用)
print(lst)
lst[1:5:2] = ["麻花藤", "碼雲"]  # 坑: 若是步長不是1. 元素的個數必需要和切片的個數一致
print(lst)

 

 

 

查詢:

          for循環

 lst = ["jay", "wlh", "lzw", "wf"]
for item in lst: # item是lst中的每一項
    print(item)

for i in 123:  # 'int' object is not iterable
    print(i)

 

3.列表的嵌套

        多個列表互相嵌套.

 

lst = [["張藝謀", "馮小剛", "陳凱歌"], ["李安", "王家衛", "王晶"], ["周杰倫",["abc", "alex_wusir", ["胡辣湯", "c"]], "風扇哥"]]
print(lst[1][1][2])

# 把王晶換成"賈樟柯"

 lst[1][2] = "賈樟柯"
 print(lst)

# 降維操做 ["哈哈", "hehe", "houhou"] 一維  [[1,2,3], [12,4,5], [6,7,8]] 二維
# 數數
lst[2][1][1] = lst[2][1][1].replace("_", "$")
print(lst)

 

4.列表的其餘操做

       ①count()    計數

 

lst = ["太白", "太白", "太黑", "日天", "女神", "alex", "太白"]
print(lst.count("太白")) # 查看xxx元素出現的次數

 

 

 

       ②sort()     排序  reverse = True

 

lst = [1, 8,12,22,1,1,2,33,4,5]
lst.sort() # 排序. 默認升序
lst.sort(reverse=True) # reverse 反向, 降序
print(lst)

 

 

 

       ③reverse()    翻轉 

 

lst = ["赤木", "櫻木花道", "流川楓", "三井"]
lst.reverse() # 把列表翻轉
print(lst)

 

 

 

  ④len()     求長度

 

lst= [1,2,3,4,5,"胡辣湯"]
print(len(lst)) # 查看列表中元素的個數

list # 按住ctrl +鼠標左鍵

 

 

 

 

5. 元組

  能裝對象的對象.   不可變, 一旦確認好, 不可更改.

  只讀列表

  能夠迭代

# 元組用()表示, 只讀列表. 馮提莫
# tu = ("DNF", "LOL", "王者榮耀", "QQ飛車", "炫舞", {}, tuple(), [])
# print(tu)
# # tu[1] = "呵呵" # 'tuple' object does not support item assignment
# print(tu)

# 元組也有索引和切片
# print(tu[3:5])
# print(tu[3:7:2])

# 元組有坑
# 空元祖
# tu = tuple() # 固定寫法
# 元組中若是隻有一個元素
# tu = (1) # 不是元組   <class 'int'>
# tu = (1, ) # 這個是元組 <class 'tuple'>
# print(type(tu))

# 好習慣: 寫元組的時候末尾加個逗號

# tu = ("鍋包肉", "酸菜燉粉條+五花肉", "紅燒鯉魚", "紅燒肉")
# # 元組也是可迭代的
# for item in tu: # 能夠使用for循環
#     print(item)


tu = (1, "哈哈", "胡辣湯", ["忍者", "神龜"])
# tu[1] = "呵呵" # 元組不可變
tu[3] = ["我是新列表"] # 改變了指向. 報錯
tu[3].append("孫悟空") # 元組沒改. 該的是元素內部 沒有改變元組的指向. 不報錯
print(tu)

 

 

 

       

    

 

6.元組的嵌套

  和列表同樣.  均可以互相嵌套

  元組的不可變:  指向不變

 

7. range( 重點,難點 )

  數數

  range(n)     [0, n)

  range(m,n)     [m, n)

       range(m,n,p)      [m, n)  每隔p取一個

 

        重點!!!!!!!!!!!!!!!!!!!!! 

for  i  in range(len(lst)):
   i 索引
   lst[i]    元素

 

參考:

# i = 1
# while i <=100:
#     print(i)
#     i += 1

#  range(參數)  [0,參數)
# for i in range(20): #  range()能夠被迭代 0-9
#     print(i)

# range(參數1, 參數2)  [參數1, 參數2) 切片
# for i in range(10, 20):
#     print(i)

# range(參數1, 參數2, 參數3)  [參數1, 參數2) 每隔參數3個位置取一個
# for i in range(10, 20, 3):
#     print(i)

# lst = ["周杰倫", "動畫城", "大風車", "隨便加", "寶寶", "孟孟", "萌萌", "孟萌"]

# for item in lst: # 只能拿到元素. 獲取不到索引
#     print(item)

# for i in range(len(lst)): # i就是索引 lst[i]元素
#     print(i, lst[i])

 

思考題.

有以下列表
li = [1, 3, 4, "alex", [3, 7, 8, "TaiBai"], 5, "RiTiAn"]
循環打印列表中的每一個元素,遇到列表則再循環打印出它⾥⾯的元素。

 

li = [1, 3, 4, "alex", [3, 7, 8, "TaiBai"], 5, "RiTiAn"]
for i in li:
    if type(i) == list:
        for a in i:
            if type(a) == str:
                print(a.lower())
                continue
            print(a)
    elif type(i) == str:
        print(i.lower())
    else:
        print(i)
相關文章
相關標籤/搜索