練習:刪除指定分數列表中所有低於60分的成績
scores1 = [98, 45, 34, 89, 23, 67, 23, 9, 54, 100, 78]
scores = [98, 45, 34, 89, 23, 67, 23, 9, 54, 100, 78]
scores1 = scores.copy() scores1 = score[:] scores1 = scores*1 scores1 = scores +
for x in scores:
if x < 60:
scores1.remove(x)
print(scores1)
scores = [98, 45, 34, 89, 23, 67, 23, 9, 54, 100, 78]
score = 98: 98<60 - false
score = 45: 45<60 -true - 執行remove
score = 89: 89<60 - false
scores = [98, 45, 34, 89, 23, 67, 23, 9, 54, 100, 78]
for index, s in range(len(scores)):
if scores[index] < 60:
del scores[index]
print[scores]會出現越界錯誤
原因和上面一樣,刪除之後列表會變化,最後導致列表變短,無法執行所有迴圈
scores = [98, 45, 34, 89, 23, 67, 23, 9, 54, 100, 78]
index = 0
while true:
s = scores[index]
if s < 60:
del scores[index]
else:
index += 1
if index >= len(scores):
break
print(scores)
index = 0, scores = 98, 不滿足 執行else +=1 變為2
index = 1, scores = 45, 滿足 執行if 刪除
index = 1, scores = 34, 滿足, 執行if 刪除
index = 1 scores = 89, 不滿足 執行 else +=1 變為3
index = 2 …
列表[開始下標:結束下標:步長] - 從開始下標開始獲取到結束下標為止,每次增加步長
注意:1)列表切片的結果一定是列表
2)結束下表對應的元素一定取不到
3)如果步長為正,表示從前往後取,這個時候開始下標對應的元素必須在結束下標對應元素的前面,否則結果為空
4)如果步長未負,表示從後往前取,這個時候開始下標對應的元素必須在結束下標對應元素的後面,否則結果為空
list1 = [23, 45, 67, 89, 67, 32]
print(list1[1:4:1]) # [45, 67, 89]
print(list1[0:6:2]) # [23, 67, 67]
print(list1[3:3:1]) #
print(list1[1:4:-1]) #
print(list1[5:1:-1]) # [32, 67, 89, 67]
print(list1[-2:1:-2]) # [67, 67]
列表(開始下標:結束下標) - 省略步長,步長就是:1
fruits = ['橘子', '葡萄', '獼猴桃', ' 桃子', '西瓜']
print(fruits[-3:-1]) # ['獼猴桃', ' 桃子']
print(fruits[-1:2]) #
列表[:結束下標:步長]
步長為正 - 從開始第乙個元素開始往後取(相當於開始下標是0)
步長為負 - 從最後乙個元素開始往前取(相當於開始下標是-1)
fruits = ['橘子', '葡萄', '獼猴桃', ' 桃子', '西瓜']
print(fruits[:3]) # ['橘子', '葡萄', '獼猴桃']
print(fruits[:2:-2]) # ['西瓜']
列表[開始下標::步長]
步長為正:從前往後取到最後乙個元素為止
步長未負:從後往前取到第乙個元素為止
fruits = ['橘子', '葡萄', '獼猴桃', ' 桃子', '西瓜']
print(fruits[2:]) # ['獼猴桃', ' 桃子', '西瓜']
print(fruits[-3::-1]) # ['獼猴桃', '葡萄', '橘子']
print(fruits[2::-2]) # ['獼猴桃', '橘子']
print(fruits[:]) # ['橘子', '葡萄', '獼猴桃', ' 桃子', '西瓜']
print('hello'[1:4])
list1 = [10, 20, 30]
list2 = [100, 200]
list3 = list1 + list2
print(list3) # [10, 20, 30, 100, 200]
list1 = [10, 20, 30]
list4 = list1 * 3
print(list4)
list11 = [1, 2, 3, 4, 5]
list22 = [10, 20]
print(list11 > list22) # false
print([1, 2, 3] == ['abc']) # false
結果為 true 或者 falseprint(10 in [1, 20, 10, 4]) # true
print(10 in [1, 20, [10, 4]]) # false
練習:獲取兩個列表中公共的元素
a = [1, 2, 5, 10, 3, 2]
b = [5, 2, 10, 20, 32]
c =
for x in a:
if x in b:
if x not in c:
else:
continue
print(c)
for x in a:
if x in b and x not in c:
print(c)
scores = [23, 43, 54, 65, 2, 3]
print(sum(scores))
print(max(scores))
print(min(scores))
scores = [23, 43, 54, 65, 2, 3]
new_scores = sorted(scores)
print(new_scores) # [2, 3, 23, 43, 54, 65]
new_scores1 = sorted(scores, reverse=true)
print(new_scores1) # [65, 54, 43, 23, 3, 2]
print(len(scores)) # 6
5) list(資料) - 將指定資料轉換成列表(資料必須是序列),轉換的時候會把序列中的元素作為新的列表中的元素print(list('abc')) # ['a', 'b', 'c']
print(list(range(5))) # [0, 1, 2, 3, 4]
names = ['海賊王', '火影忍者', '銀魂']
names. clear()
print(names)
names = ['海賊王', '火影忍者', '銀魂']
new_names = names.copy()
print(id(names), id(new_names))
nums = [1, 2, 3, 5, 1, 2, 1, 1]
print(nums.count(1))
names = ['海賊王', '火影忍者', '銀魂']
names.extend(['妖精的尾巴', '家庭教師reborn'])
print(names)
names = ['海賊王', '火影忍者', '銀魂']
print(names.index('銀魂'))
names = ['海賊王', '火影忍者', '銀魂']
names.reverse()
print(names)
nums = [1, 2, 3, 5, 1, 2, 1, 1]
re = nums.sort()
print(nums) # [1, 1, 1, 1, 2, 2, 3, 5]
nums.sort(reverse=true)
print(nums) # [5, 3, 2, 2, 1, 1, 1, 1]
print(re) # none 沒有產生新列表的證據
列表和元祖
序列 序列是python中最基本的資料結構。序列中的每個元素都分配乙個數字 它的位置或索引,第乙個索引是0,第二個索引是1,以此類推。索引 從0開始,最後是 1,資料型別為整型 int 元素 列表和元組的元素可以是不同資料型別,可重複。python中,常見序列有列表 元組 字串。通用序列操作 索引 ...
Python 列表和元祖
在python中,最基本的資料結構是序列,序列包含 其他的內建序列型別有 一 通用序列操作 所有的序列型別都可以進行某些特定的操作。這些操作包括 索引 分片 加 乘及檢查某個元素是否屬於序列的成員。1.1 索引 name hongxue name 0 h name 0 3 hon 這就是索引,字串是...
python 列表和元祖
count item 表示統計列表 元組中 item 出現的次數。l 1,2,3,4,item 45,item print l print l 0 l 3 99 print l print l.count item index item 表示返回列表 元組中 item 第一次出現的索引。l 1,2,...