学习使我快乐 第五天
Day 05
一.列表運算
1.列表的重復
- 可直接使用*使其重復,需注意 *號需跟整數,意思是代表重復次數。
- 例:
打印結果為 [1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4]
2.列表的拼接
- 可直接使用+進行拼接。
- 例
打印結果為[1, 2, 3, 4,5, 6, 7, 8]
3.成員運算 : in、not in,運算的結果為布爾值。
- 例
打印結果為:True,False
4.比較大小
a. 比較大小的元素必須是同類型的
b. 比較大小比較的是第一隊不相等元素的大小(容器)
c. 數字正常比較大小
- 例
打印結果為:True,True
二、列表的放法和函數
1.獲取同類型的最大值或最小值
- 例
打印結果為:1,4
2.count : 統計某個元素的出現個數
- 例
打印結果為:1,0
3.sum 求和
- 例
打印結果為:10
4.reverse:將列表倒序,返回值為None,直接修改列表本身。
- 例
打印結果為:[4, 3, 2, 1]
5.sorted:將列表從小到大排序,生成新的列表。
sort:將列表從小到大排序,修改原來的列表。
- 例
6.extend():將一個容器中的元素添加到列表中。
- 例
打印結果為:
[75, 50, 30, 23, ‘a’, ‘b’, ‘c’, ‘d’, ‘e’]
[75, 50, 30, 23, ‘a’, ‘b’, ‘c’, ‘d’, ‘e’, ‘a’, 7, 8, 9]
7.index:查找某個元素
a. 從左向右查找,找到元素立馬停止,返回下標。
b. 如果元素不存在,將會報錯。
- 例
打印結果為元素下標:4,9
練習:不適用 index 方法尋找第二個元素a
num1=[75, 50, 30, 23, ‘a’, ‘b’, ‘c’, ‘d’, ‘e’, ‘a’, 7, 8, 9]
total = 0 for i in range(len(num1)):if num1[i] == 'a':total += 1if total == 2:print(i)三、列表去重
1. 有一個列表,要求去掉重復的人名
- 例如:names = [‘張三’, ‘李四’, ‘大黃’, ‘張三’,‘張三’] -> names = [‘張三’, ‘李四’, ‘大黃’]
解析:方法一
解析:方法二
names = ['張三', '李四', '大黃', '張三', '張三'] for i in range(len(names),-1,-1):if i names.count(i)>1:del names[i]print(names)解析:方法三
index=0 while index <= len(names)-1:if i names.count(i)>1:del names[index]else:index+=1print(names)四、列表的推導式(列表的生成式)
列表推導式(列表生成式):生成一個有元素的列表
a. 語法1 :[表達式 i for 變量 in rongqi]
for 循環每執行一次,表達式就會將其生成的結果添加到列表中。
例:
(1).將1-100的整數生成一個列表:
打印結果為:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100]
(2).將10個1生成一個列表:
打印結果為:[1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
b.append()適用于所有向列表中追加元素的操作;列表推導式在某些情況下可以替代append()
得出結果:性能:列表推導式>append()
c.語法二:[表達式 for 變量 in 容器 if 條件] 注:只能加if,不能在家其他命令
for 循環執行一次,if 分支判斷一次,條件成立才會向列表添加元素
例:將1-100內偶數生成一個列表:
nums = [i for i in range(1,101) if i % 2 == 0 ] print(nums)打印結果為:[2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100]
d. 語法三:[表達式 for 變量 in 容器 for 變量 in 容器 ] 幾乎用不到
例:將1-10打印3次:
打印結果為:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
五、隨機模塊
1. random:隨機模塊,適用于俄羅斯輪盤、抽獎等。
- import random
- randint(a,b) -> 從[a,b]閉區間中隨機獲取一個整數
- randrange()->約等于randint+range
- 例:
打印結果為:
1
4
[4, 3, 3, 2, 3]
[1, 3, 4]
None
[1, 4, 2, 3]
練習:課堂點名器
names = ['張三','李四','王二','麻子'] random.shuffle(names) while True:# 此處可進行暗箱操作 result = random.choices(names, k=1)if result == ['王二']:# 隨機至王二在進行輸出break print(f'被抽中的同學為:{result}') # 會一直是王二- 使用PyQt/wxpython等GUI(圖形可視化)進行可視化
- 使用pyinstall將程序封裝成windows的exe可執行文件
總結
以上是生活随笔為你收集整理的学习使我快乐 第五天的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【爬虫】3.4 爬取网站复杂数据
- 下一篇: 我认为 Zig 非常难,但值得一试