4列表

做業易錯題

"""
4.請用代碼實現:
li = ["alex", "wusir", "taibai"]
利用下劃線將列表的每個元素拼接成字符串"alex_wusir_taibai"
"""

li = ["alex", "wusir", "taibai"]
# s = "" # "alex_wusir_taibai_"       #   ""+"alex"+"_ = "alex_"   "alex_"+"wusir"+"_"  "alex_wusir_" +"taibai"+"_"
# for i in li:
#     s = s + i + "_"
# print(s[:-1])

# print("_".join(li))  # 拼接的符號.join(可迭代對象)

# 錯誤的示範
# print(str.join(li))

"""
9.利用for循環和range從100~10,倒序將全部的偶數添加到一個新列表中,而後在對列表的元素進行篩選,將能被4整除的數留下來。
"""
# lst = []
# for i in range(100,9,-2):
#     lst.append(i)
#
# for j in lst:
#     if j % 4 != 0:
#         lst.remove(j)
# print(lst)

"""
10.利用for循環和range,將1-30的數字中能被3整除的數改爲* 依次添加到的列表當中
"""
# lst = []
# for i in range(1,31):
#     if i % 3 == 0:
#         lst.append("*")
#     else:
#         lst.append(i)
# print(lst)

"""
11.查找列表li中的元素,移除每一個元素的空格,並找出以"A"或者"a"開頭,
並以"c"結尾的全部元素,並添加到一個新列表中,最後循環打印這個新列表。
"""
# li = ["TaiBai ", "alexC", "AbC ", "egon", " riTiAn", "WuSir", " aqc"]
# lst = []
# for i in li:
#     em = i.strip()
#     if (em.startswith("A") or em.startswith("a")) and em.endswith("c"):
#         lst.append(em)
# print(lst)

"""
12.開發敏感詞語過濾程序,提示用戶輸入評論內容,若是用戶輸入的內容中包含特殊的字符:
敏感詞列表 li = ["蒼老師", "東京熱", "武藤蘭", "波多野結衣"]
則將用戶輸入的內容中的敏感詞彙替換成等長度的*(蒼老師就替換***),
並添加到一個列表中;若是用戶輸入的內容沒有敏感詞彙,則直接添加到上述的列表中。
"""
li = ["蒼老師", "東京熱", "武藤蘭", "波多野結衣"]
# len()
# in
# if
# input()
# replace

# lst = []
# content = input("請輸入內容:") # "蒼老師真是厲害,教育了一代又一代,武藤蘭也是一個狠人啊"
# for i in li:
#     if i in content:
#         content = content.replace(i,len(i) * "*")  # em = "蒼老師真是厲害,教育了一代又一代,***也是一個狠人啊"
          # 有點坑
# lst.append(content)
# print(lst)

"""
13.有以下列表(選作題)

循環打印列表中的每一個元素,遇到列表則再循環打印出它裏面的元素。
我想要的結果是:
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 em in i:
#             if type(em) == str:
#                 print(em.lower())
#             else:
#                 print(em)
#     else:
#         if type(i) == str:
#             print(i.lower())
#         else:
#             print(i)


"""
14.用戶輸入一個數字,使用列表輸出這個數字內的斐波那契數列,以下列表:(選作題)
用戶輸入100 輸出[1,1,2,3,5,8,13,21,34,55,89]這個列表
"""
# lst = [1,1]
# num = input("請輸入數字:")  # 10
# if num.isdecimal():
#     new_num = int(num)
#     while lst[-1] + lst[-2] <= new_num:
#         lst.append(lst[-1]+lst[-2])
#     print(lst)
# else:
#     print("請輸數字!")

筆記總結

列表 -- list
    有序,可變的,索引,
    做用:存儲數據的,支持不少種數據類型

定義方式:
lst = [1,"alex","黑哥"]

增:
append 追加
insert 插入
extend 迭代添加

刪
del lst  -- 刪除整個列表
del lst[1:2] -- 切片刪除
del lst[1:4:2] -- 步長刪除

pop
  1.默認刪除最後一個
  2.有返回值返回的是被刪除的元素
  3.經過索引進行刪除

clear 清空列表
remove 經過元素進行刪除

改
lst[0] = 1
lst[1:2] ="qaaa"   # 元素能夠超出切片的位數
lst[1:4:2] = "12"  # 元素和位置一一對應,多也不行少也不行

查
for i in lst:
    print(i)

列表的嵌套:
取值經過索引進行取值,一層一層的進行查找

2.元組 -- tuple
  只能索引查看和for查看,不能進行增刪改
  存儲一些重要的信息數據
  元組是不可變的列表

3.range -- 範圍
    python3:
        range 是一個可迭代對象
    python2:
        xrange和python3中的range是類似的
        range返回一個列表
    range 是顧頭不顧尾

    range(起始位置,終止位置)  --  [起始位置:終止位置]
    range(終止位置)  --  [:終止位置]
    range(起始位置,終止位置,步長)  --  [起始位置:終止位置:步長]

    for 和 range配合使用

面試題:

lst = []
for i in lst:
    lst.append("alex")
    print(lst)  # 不會打印內容  由於lst是空的

lst = [1,2]
for i in lst:
    lst.append("alex")
    print(lst) # 循環打印lst中的內容 -- 此循環是死循環

lst = [1,2]
for i in lst:
    lst.append("alex")
print(lst)  # 死循環 -- 不會打印內容

lst = []
for i in range(5):
    lst.append([])
print(lst)  # [[],[],[],[],[]]

lst = [1,2]
lst[0] = lst
print(lst)  # [[...],2]
相關文章
相關標籤/搜索