python學習內容.04

來源:互聯網
上載者:User

標籤:tuple   拼接   object   content   林俊傑   rem   sign   資訊   第一個   

本節主要內容:
1. 列表 2. 列表的增刪改查 3. 列表的嵌套 4. 元組和元組嵌套 5. range
一. 列表    1.1   列表的介紹        列表是python的基礎資料類型之一 ,其他程式設計語言也有類似的資料類型. 比如JS中的數組, java中的數組等等. 它是以[ ]括起 來, 每個元素用‘ , ‘隔開而且可以存放各種資料類型:     lst = [1, ‘哈哈‘, "吼吼", [1,8,0,"百度"], ("我","叫", "元", "組"), "abc", {"我叫":"dict字典"},{"我叫集合","集合"}]         列表相比於字串. 不僅可以存放不同的資料類型. 而且可以存放大量的資料. 32位python可以存放:  536870912個元素, 64位可以存放:  1152921504606846975個元素.而且列表是有序的(按照你儲存的順序),有索引, 可以切片方便取值.
    2.2  列表的索引和切片           列表和字串一樣也擁有索引: lst = ["麻花藤", "王劍林", "馬芸", "周鴻醫", "向華強"] print(lst[0])   # 擷取第一個元素 print(lst[1]) print(lst[2])
lst[3] = "流動強"  # 注意. 列表是可以發生改變的. 這裡和字串不一樣 print(lst)  # [‘麻花藤‘, ‘王劍林‘, ‘馬芸‘, ‘流動強‘, ‘向華強‘]
s0 = "向華強" s0[1] = "美"  # TypeError: ‘str‘ object does not support item assignment 不允許改變 print(s0)            列表的切片: lst = ["麻花藤", "王劍林", "馬芸", "周鴻醫", "向華強"] print(lst[0:3])     # [‘麻花藤‘, ‘王劍林‘, ‘馬芸‘] print(lst[:3])      # [‘麻花藤‘, ‘王劍林‘, ‘馬芸‘]
print(lst[1::2])    # [‘王劍林‘, ‘周鴻醫‘] 也有步長 print(lst[2::-1])   # [‘馬芸‘, ‘王劍林‘, ‘麻花藤‘] 也可以倒著取
print(lst[-1:-3:-2])    # 倒著帶步長    二. 列表的增刪改查
1. 增, 注意, list和str是不一樣的. lst可以發生改變. 所以直接就在原來的對象上進行了操作
lst = ["麻花藤", "林俊傑", "周潤發", "周芷若"]
print(lst) lst.append("wusir") print(lst)
lst = [] while True:    content = input("請輸入你要錄入的員工資訊, 輸入Q退出:")    if content.upper() == ‘Q‘:        break    lst.append(content) print(lst)
lst = ["麻花藤", "張德忠", "孔德福"] lst.insert(1, "劉德華")    # 在1的位置插入劉德華. 原來的元素向後移動一位 print(lst)
# 迭代添加 lst = ["王志文", "張一山", "苦海無涯"] lst.extend(["麻花藤", "麻花不疼"]) print(lst)   
2. 刪除
    pop, remove, clear, del lst = ["麻花藤", "王劍林", "李嘉誠", "王富貴"] print(lst) deleted = lst.pop()         # 刪除最後一個 print("被刪除的", deleted) print(lst)
el = lst.pop(2)     # 刪除2號元素 print(el) print(lst)
lst.remove("麻花藤")   # 刪除指定元素 print(lst) # lst.remove("哈哈")    # 刪除不存在的元素會報錯 # # print(lst)
lst.clear()     # 清空list print(lst)
# 切片刪除 del lst[1:3] print(lst)
3. 修改
 
    索引切片修改 # 修改 lst = ["太白", "太黑", "五色", "銀王", "日天"] lst[1] = "太汙"   # 把1號元素修改成太汙 print(lst)
lst[1:4:3] = ["麻花藤", "哇靠"]     # 切片修改也OK. 如果步長不是1, 要注意. 元素的個數 print(lst)
lst[1:4] = ["李嘉誠個龜兒子"]  # 如果切片沒有步長或者步長是1. 則不用關心個數 print(lst)
4. 查詢, 列表是一個可迭代對象, 所以可以進行for迴圈
for el in lst:    print(el)
5. 其他動作
lst = ["太白", "太黑", "五色", "銀王", "日天", "太白"] c = lst.count("太白")     # 查詢太白出現的次數 print(c)
lst = [1, 11, 22, 2] lst.sort()          # 排序. 預設升序 print(lst) lst.sort(reverse=True)  # 降序 print(lst)
lst = ["太白", "太黑", "五色", "銀王", "日天", "太白"] print(lst) lst.reverse() print(lst)
l = len(lst)    # 列表的長度 print(l)
三. 列表的嵌套    採用降維操作.一層一層的看就好.
 
lst = [1, "太白", "wusir", ["馬虎疼", ["可口可樂"], "王劍林"]]
# 找到wusir print(lst[2])
# 找到太白和wusir print(lst[1:3])
# 找到太白的白字 print(lst[1][1])
# 將wusir拿到. 然後首字母大寫. 再扔回去 s = lst[2] s = s.capitalize() lst[2] = s print(lst) # 簡寫 lst[2] = lst[2].capitalize() print(lst)
# 把太白換成太黑 lst[1] = lst[1].replace("白", "黑") print(lst)
# 把馬虎疼換成馬化疼
lst[3][0] = lst[3][0].replace("虎", "化") print(lst[3][0])
lst[3][1].append("雪碧") print(lst)
四. 元組和元組嵌套    元組: 俗稱不可變的列表.又被成為唯讀列表, 元組也是python的基礎資料型別 (Elementary Data Type)之一, 用小括弧括起來, 裡面可以放任何資料類型 的資料,  查詢可以. 迴圈也可以. 切片也可以. 但就是不能改.
 tu = (1, "太白", "李白", "太黑", "怎麼黑") print(tu)
print(tu[0]) print(tu[2]) print(tu[2:5])  # 切片之後還是元組
# for迴圈遍曆元組 for el in tu:    print(el)
# 嘗試修改元組 # tu[1] = "馬虎疼"   # 報錯 ‘tuple‘ object does not support item assignment
tu = (1, "哈哈", [], "呵呵") # tu[2] = ["fdsaf"]   # 這麼改不行
tu[2].append("麻花藤")     # 可以改了. 沒報錯 tu[2].append("王劍林") print(tu)    關於不可變, 注意: 這裡元組的不可變的意思是子項目不可變. 而子項目內部的子項目是可以變, 這取決於子項目是否是可變對 象.
     元組中如果只有一個元素. 一定要添加一個逗號, 否則就不是元組
 tu = (1,) print(type(tu)) 元組也有count(), index(), len()等方法. 可以自己測試使用
五. range    range可以幫我們擷取到一組資料. 通過for迴圈能夠擷取到這些資料.
 for num in range(10):    print(num)
for num in range(1, 10, 2):    print(num)
for num in range(10, 1, -2):    # 反著來, 和切片一樣    print(num)

作業內容:

1,寫代碼,有如下列表,按照要求實現每一個功能

li = ["alex", "WuSir", "ritian", "barry", "wenzhou"]
#1)計算資料行表的長度並輸出
#print(len(li))
#2)列表中追加元素"seven", 並輸出添加後的列表
#li.append("seven")
#print(li)
3)請在列表的第1個位置插入元素"Tony", 並輸出添加後的列表
li.insert(1,"Tony")
print(li)
4)請修改列表第2個位置的元素為"Kelly", 並輸出修改後的列表
li[1]="Kelly"
5)請將列表l2 = [1, "a", 3, 4, "heart"]的每一個元素添加到列表li中,一行代碼實現,不允許迴圈添加。
l2 = [1, "a", 3, 4, "heart"]
li.extend([l2])
print(li)
6)請將字串s = "qwert"的每一個元素添加到列表li中,一行代碼實現,不允許迴圈添加。
s = "qwert"
li.extend([s])
print(li)
7)請刪除列表中的元素"eric", 並輸出添加後的列表
li.remove("eric")
print(li)
8)請刪除列表中的第2個元素,並輸出刪除的元素和刪除元素後的列表
s=li.pop(2)
print(s)
print(li)
9)請刪除列表中的第2至4個元素,並輸出刪除元素後的列表
del li[2:4]
print(li)
10)請將列表所有得元素反轉,並輸出反轉後的列表
li.reverse()
print(li)
11)請計算出"alex"元素在列表li中出現的次數,並輸出該次數。
print(li.count("alex")) 1次
2,寫代碼,有如下列表,利用切片實現每一個功能

li = [1, 3, 2, "a", 4, "b", 5, "c"]
1)通過對li列表的切片形成新的列表l1, l1 = [1, 3, 2]
l1=li[0:3]
print(l1)
2)通過對li列表的切片形成新的列表l2, l2 = ["a", 4, "b"]
l1=li[3:6]
print(l1)
3)通過對li列表的切片形成新的列表l3, l3 = ["1,2,4,5]
l1=li[0::2]
print(l1)
4)通過對li列表的切片形成新的列表l4, l4 = [3, "a", "b"]
l1=li[1:6:2]
print(l1)
5)通過對li列表的切片形成新的列表l5, l5 = ["c"]
l1=li[7]
print(list(l1))
6)通過對li列表的切片形成新的列表l6, l6 = ["b", "a", 3]
l1=li[5:0:-2]
print(l1)
3, 寫代碼,有如下列表,按照要求實現每一個功能。
lis = [2, 3, "k", ["qwe", 20, ["k1", ["tt", 3, "1"]], 89], "ab", "adv"]
1)將列表lis中的"tt"變成大寫(用兩種方式)。
01..lis[3][2][1][0]=lis[3][2][1][0].upper()
print(lis)
02.lis[3][2][1][0]=lis[3][2][1][0].swapcase()
print(lis)

2)將列表中的數字3變成字串"100"(用兩種方式)。
01.lis[1]="100"
lis[3][2][1][1]="100"
print(lis)
02.lis=str(lis).replace("3","‘100‘")
print(lis)

3)將列表中的字串"1"變成數字101(用兩種方式)。
01:‘‘‘lis[3][2][1][2]=101
print(lis)
‘‘‘
02:lis=str(lis).replace("‘1‘","101")
print(lis)
4, 請用代碼實現:li = ["alex", "eric", "rain"]
利用底線將列表的每一個元素拼接成字串"alex_eric_rain"
li[0:3]=["alex_eric_rain"]
print(li)
5,利用for迴圈和range列印出下面列表的索引。li = ["alex", "WuSir", "ritian", "barry", "wenzhou"]
a=len(li)
for li in range(0,a):
print(li)
6,利用for迴圈和range找出100以內所有的偶數並將這些偶數插入到一個新列表中。
for s in range(2,100,2):
a = list(range(2, 100, 2))
print(a)
7,利用for迴圈和range
找出50以內能被3整除的數,並將這些數插入到一個新列表中。
for s in range(3,50,3):
a=list(range(3,50,3))
print(a)
8,利用for迴圈和range從100
~1,倒序列印。
for s in range(100,1,-1):
a=list(range(100,1,-1))
a.reverse()
print(a),
for lis in range(100,10,-2):
9,利用for迴圈和range從100~10,倒序將所有的偶數添加到一個新列表中然後對列表的元素進行篩選,將能被4整除的數留下來。
a=list(range(100,10,-2))
index=0
while index<len(a):
if a[index]%4==0:
print(a[index])
index=index+1
else:
index=index+1
10,利用for迴圈和range,將1 - 30
的數字一次添加到一個列表中,並迴圈這個列表,將能被3整除的數改成 *。
for lis in range(1,30):
lis=list(range(1,30))
index=0
while index<len(lis):
if lis[index]%3==0:
print(lis[index])
index=index+1
else:
index=index+1





11,尋找列表li中的元素,移除每個元素的空格,並找出以"A"或者"a"開頭,並以"c"結尾的所有元素,並添加到一個新列表中,
最後迴圈列印這個新列表。li = ["TaiBai ", "alexC", "AbC ", "egon", " riTiAn", "WuSir", " aqc"]
b=[]
for a in li:
s=a.strip()
if (s.startswith("A")or s.startswith("a"))and s.endswith("c"):
b.append(s)
for x in b:
print(x)

12,開發敏感詞語過濾程式,提示使用者輸入評論內容,如果使用者輸入的內容中包含特殊的字元:
敏感詞列表
li = ["蒼老師", "東京熱", "武藤蘭", "波多野結衣"]
則將使用者輸入的內容中的禁用語替換成等長度的 *(蒼老師就替換 ** *),並添加到一個列表中;如果使用者輸入的內容沒有禁用語,則直接添加到上述的列表中。


13,有如下列表
li = [1, 3, 4, "alex", [3, 7, 8, "TaiBai"], 5, "RiTiAn"]
迴圈列印列表中的每個元素,遇到列表則再迴圈列印出它裡面的元素。
我想要的結果是:
1
3
4
"alex"
3
7,
8
"taibai"
5

python學習內容.04

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.