day04_步入百萬年薪的第四天——列表、元組、range

day04

列表

列表——list

​ 有序,可變,支持索引

  • 列表:存儲數據,支持的數據類型很多:字符串,数字,布爾值,列表,集合,元組,字典,用逗號分割的是一個元素
  • id() :獲取對象的內存地址
lst = ['alex',123,True] # 用逗號分割的是一個元素
print(lst) # 結果是['alex',123,True]
print(lst[0])
print(id(lst[0]))
# id獲取對象的內存地址

lst[0] = "dsb"
print(lst)  # ['dsb', 123, True, '黑哥']

# s = "alex" # 字符串是不可變數據
# s = "wusir"
# s[0] = "b"
# print(s)
列表的增加
  • append():追加,在末尾的位置加一個
# lst.append("大煎餅")  #追加(在列表的最後位置添加一個內容)
# print(lst)
  • insert():插入,insert(像插入的位置下標,’內容’)插入到位置前面

insert()以後盡量不要使用(當數據量比較大的時候會影響效率)

# lst.insert(2,"wusir")  #插入  以後盡量不要使用(當數據量比較大的時候會影響效率)
# print(lst)
  • extend(可迭代對象):擴展 ——迭代添加(数字和布爾值不能),把裏面的內容一個一個的放在後面
# lst.extend("可迭代的內容")  # 迭代添加
# print(lst)
列表的刪除
  • del (不是列表的專屬方法) :可以配合索引刪除,可以配合切片和步長刪除,可以強制刪除空間
# del lst[0]  # 通過索引刪除
# print(lst)

# del lst[0:3] # 通過切片刪除
# print(lst)

# del lst[0:3:2] # 通過步長刪除
# print(lst)
  • remove():通過元素名字刪除,刪除左邊第一個
# lst = ["dsb",123,"dsb",True,"黑哥"]
# lst.remove("dsb") # 移除 -- 通過元素名字進行刪除
# print(lst)
  • pop():沒有指定,默認刪除最後一個

pop(0):可以指定索引刪除

ret = lst.pop(0) :可以返回被刪除的元素

# lst.pop()  # 彈 -- 默認刪除最後一個
# print(lst)

# lst = ["dsb",123,True,"黑哥"]
# lst.pop(2)   # 通過指定索引進行刪除
# print(lst)
  • clear():清空 結果是一個空列表 :[]
# lst.clear()  #清空
# print(lst)
列表的改
  • 通過索引修改
  • 可通過切片:被迭代進來的,可超出切片的數量,数字和布爾值不行,主要是索引取得留下誰 :123456(不能運行) 1,2,3,4,5,6(可運行) “123456”(可運行)
  • 可通過切片和步長:後面的內容數量必須與切片的數量相等
lst = ['楊紫','高圓圓','劉亦菲','關曉彤']
lst[0] = '楊冪'  # 通過索引修改
print(lst)  *****

lst[0:3] = '你好美11111111'  # 被迭代進來的,数字和布爾值不行,主要是索引取得留下誰 :123456(不能運行)  1,2,3,4,5,6(可運行行)  "123456"(可運行)
print(lst)  # ['你','好','美',’1',....,'1','關曉彤']

lst[0:4:2] = '好嗨哦' # 運行錯誤
lst[0:4:2] = '好嗨' #後面的內容數量必須與切片的數量相等
print(lst)  # ['好','楊紫','嗨','劉亦菲']
列表的查
  • 通過for循環
# for 循環
# lst = ["dsb",123,"dsb",True,"黑哥"]
# for i in lst:
#     print(i)
增刪改查的使用
lst = ['你', '好', '啦', '啊']
lst.append('牛')
print(lst)
lst.insert(1, '牛一')
print(lst)
lst.extend('你好')
print(lst)

lst.pop(1)
print(lst)
lst.remove('牛')
print(lst)
lst1 = ['asd', 'dfg']
lst1.clear()
print(lst1)

lst[4] = '朱'
print(lst)
lst[0:4] = '12'
print(lst)
lst[0::2] = '36'
print(lst)

for i in lst:
    print(i)
列表的嵌套

通過索引進行取值

不管什麼類型進行切片的時候獲取到的都是原數據類型

# a = lst[-1][-1][-2]
# print(a)
# 不管什麼類型進行切片的時候獲取都到都是源數據類型

# lst = [1,"alex","春生","小東北","渣弟",
#        ["大黑哥",["常鑫",["自行車"],"大煎餅","掉井蓋","三金"],
#     "馮強","海峰",["太白金星","女神","吳超",["肖鋒"]]]]
# print(lst[-1][1][1][0])

元組

元組——tuple

有序,不可變,支持索引

元組(tuple)其實就是一個不可以修改的列表

元組的查

for語句查

也可以用索引,可以用切片,也可以加步長,元組切片結果也是元組

元組不能進行修改,不可變

應用場景

元組用於存儲一些比較重要的信息,元組在配置文件中會使用,存放一些用戶密碼的時候

常量也是在配置文件中使用

修改——一般不推薦

轉成列表再進行修改

# tu = (1,"alex",True,"大黑哥",[1,2,3])
# lst = [1,"alex",True,"大黑哥",[1,2,3]]
# print(tu)

# tu = (1,"alex",True,"大黑哥",[1,2,3])
# print(tu[0:6])

# for 循環
# for i in tu:
#     print(i)

range

range——範圍

print(list(range(0,10))) 顧頭不顧尾

面試題

python3中range(0,10) 是一個可迭代的對象,寫得是怎樣的打印的時候就是怎樣 :print(range(0,10)) # 結果是 range(0,10)

print(list(range(0,10)))# 結果是[0,1,2,3,4,5,6,7,8,9]

python2中 的 range 獲取到一個列表

range(0,10) # 結果是[0,1,2,3,4,5,6,7,8,9]

xrange和python3中range是相似的,都是可迭代對象,返回結果是 range(0,10)

range 和切片一樣:range 第一個是起始位置,第二個是終止位置,第三個是步長,步長默認為1,終止位置和切片一樣都是顧頭不顧尾,他們之間用逗號分開

print(list(range(1,10,3))) # 結果是 [1,4,7]
print(list(range(10,-2,-1))) # 結果是 [10,...,-1]
print(list(range(10))) # 結果是 [0,1,...,9]

作用:range #可以讓for循環数字

for i in range(55):
    print(i) #  結果是打印 1到54
for i in range(100, 0, -1):
    print(i)

# 使用for循環和range 打印 100 ~ 1
# for i in range(100,0,-1):
#     print(i)

# for i in range(1,101,2):
#     print(i)

# for i in range(0,101,2):
#     print(i)

# for i in range(0,101,6):
#     print(i)

range 不能和while一起使用

# 錯誤示例:
# while range(0,10):
#     print(1)
while和for的比較
# lst = []
# flage = True
# while flage:
#     name = input("請輸姓名:")
#     lst.append(name)
#     if len(lst) == 3:
#         flage = False
# print(lst)


# lst = []
# for i in range(3):
#     lst.append(input("請輸入姓名:"))
# print(lst)
点赞

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *