1. 列表
- 列表谎碍、字典萄喳、元組、集合都是序列猾愿,都是容器類的數(shù)據(jù)類型鹦聪。
- 列表list:用來存儲多個數(shù)據(jù)的一種數(shù)據(jù)類型。
特點:
?1. 有序的
?2. 可變的(指容器中的內(nèi)容個數(shù)和值可變)
?3. 元素可以是任何類型的數(shù)據(jù)
- 列表的值:用[]將列表中的元素括起來蒂秘,多個元素間用 ' , ' 隔開椎麦,[ ]是一個空列表
list0 = []
print(type(list0))
print('--------------------')
list1 = [1,3,5,'QQ',True]
print(list1, type(list1))
print('--------------------')
# 將其他類型數(shù)據(jù)轉(zhuǎn)換成列表
list2 = list('Avengers')
print(list2)
print('--------------------')
list3 = list(i for i in range(10) if i % 3 == 0)
print(list3)
print('--------------------')
<class 'list'>
--------------------
[1, 3, 5, 'QQ', True] <class 'list'>
--------------------
['A', 'v', 'e', 'n', 'g', 'e', 'r', 's']
--------------------
[0, 3, 6, 9]
--------------------
2. 獲取列表元素
- 列表中的每一個元素都對應(yīng)一個下標:0~列表長度-1;-1~列表長度
a. 獲取單個元素:列表名[下標]
superhero = ['Iron man','Spider man','Rocket','Doctor Strange','Thor']
print(superhero[1])
print(superhero[2])
print(superhero[-3])
print('-------------------------')
Spider man
Rocket
Rocket
-------------------------
b. 獲取多個元素(切片)
- 列表名[起始下標:結(jié)束下標]:獲取從開始下標開始到結(jié)束下標前的所有元素材彪。結(jié)果是一個列表
- 列表名[起始下標:結(jié)束下標:步長]:從開始下標開始观挎,每次下標值增加步長獲取下一個元素琴儿,直到結(jié)束下標前為止
起始下標和結(jié)束下標都可以缺省: - 若步長是正數(shù):開始下標缺省就從第一個獲取到結(jié)束下標嘁捷,結(jié)束下標缺省就從開始下標取到最后一個元素造成;
- 若步長為負數(shù):開始下標缺省就從最后一個倒序獲取到結(jié)束下標,結(jié)束下標缺省就從開始下標倒序取到第一個元素雄嚣。
注意:此處下標可越界
print(superhero[1:10])
print(superhero[:-9:-1])
print('-------------------------')
['Spider man', 'Rocket', 'Doctor Strange', 'Thor']
['Thor', 'Doctor Strange', 'Rocket', 'Spider man', 'Iron man']
-------------------------
- for循環(huán)遍歷
for hero in superhero:
print(hero)
Iron man
Spider man
Rocket
Doctor Strange
Thor
- while循環(huán)遍歷
index = 0
while index < len(superhero):
print(superhero[index])
index += 1
Iron man
Spider man
Rocket
Doctor Strange
Thor
3. 添加列表元素
創(chuàng)建一個空列表
sheep = []
print(sheep)
print('--------------------')
[]
--------------------
3.1. append()函數(shù)
- 格式:列表.append(元素)
- 作用:在列表的末尾添加一個元素
sheep.append('喜羊羊')
print(sheep)
print('--------------------')
sheep.append('懶羊羊')
print(sheep)
print('--------------------')
['喜羊羊']
--------------------
['喜羊羊', '懶羊羊']
--------------------
3.2. insert()函數(shù)
- 格式:列表.insert(index,元素)
- 功能:在列表指定的下標前插入一個元素
注意:此時下標可越界晒屎,插入到最前或最后面
sheep.insert(1,'美羊羊')
print(sheep)
print('--------------------')
['喜羊羊', '美羊羊', '懶羊羊']
--------------------
3.3. +
- 格式:列表1+列表2
- 功能:將列表2中的元素添加到列表1中,創(chuàng)建一個新列表
wolf = ['灰太狼','紅太狼']
qingqing_grasslands = sheep + wolf
print(qingqing_grasslands)
['喜羊羊', '美羊羊', '懶羊羊', '灰太狼', '紅太狼']
練習(xí):從控制臺輸入十個學(xué)生的成績保存到列表中
score = []
for i in range(10):
grade = float(input('請輸入學(xué)生的成績:'))
if 0<= grade <= 100:
score.append(grade)
else:
print('成績錯誤')
print(score)
請輸入學(xué)生的成績:90
請輸入學(xué)生的成績:78
請輸入學(xué)生的成績:67
請輸入學(xué)生的成績:56
請輸入學(xué)生的成績:87
請輸入學(xué)生的成績:85
請輸入學(xué)生的成績:79
請輸入學(xué)生的成績:93
請輸入學(xué)生的成績:89
請輸入學(xué)生的成績:66
[90.0, 78.0, 67.0, 56.0, 87.0, 85.0, 79.0, 93.0, 89.0, 66.0]
4. 刪除列表元素
?不管是增加還是刪除元素都會重新分配下標
game = ['王者榮耀','荒野行動','英雄聯(lián)盟','奇跡暖暖','魔獸爭霸','CS:GO']
4.1. del 語句
- 作用:del 可以刪除任何數(shù)據(jù)
- 格式 :del 列表[下標]:刪除列表中指定下標的元素
注意:這里下標不能越界
print(game)
del game[0]
print(game)
['王者榮耀', '荒野行動', '英雄聯(lián)盟', '奇跡暖暖', '魔獸爭霸', 'CS:GO']
['荒野行動', '英雄聯(lián)盟', '奇跡暖暖', '魔獸爭霸', 'CS:GO']
4.2. remove()
- 格式:列表.remove(元素)
- 作用:刪除指定元素(如果存在多個相同元素只會刪除第一個元素)
注意:如果要刪除的元素不在列表中缓升,程序會報錯
game.remove('荒野行動')
print(game)
['英雄聯(lián)盟', '奇跡暖暖', '魔獸爭霸', 'CS:GO']
4.3. pop()
- 格式1:列表.pop()
- 作用:從列表中移除最后一個元素
- 格式2:liebiao.pop(下標)
- 作用:從列表中移除指定下標的元素
print(game)
# 格式1
g = game.pop()
print(game, g)
# 格式2
ga = game.pop(1)
print(game, ga)
['英雄聯(lián)盟', '奇跡暖暖', '魔獸爭霸', 'CS:GO']
['英雄聯(lián)盟', '奇跡暖暖', '魔獸爭霸'] CS:GO
['英雄聯(lián)盟', '魔獸爭霸'] 奇跡暖暖
練習(xí):從10個學(xué)生的成績中移除低于60分的成績
scores = [10, 20, 83, 64, 75, 36, 47, 68, 60, 79]
print(scores)
for score in scores[:]:
if score < 60:
scores.remove(score)
print(scores)
[10, 20, 83, 64, 75, 36, 47, 68, 60, 79]
[83, 64, 75, 68, 60, 79]