1.什么是列表(list)
列表是容器型數(shù)據(jù)類型,可變(支持元素的增刪改)魄梯,有序(支持下標操作)
將[]作為容器的標志,里面的元素用逗號隔開
2.列表中的元素
1)認識類型的數(shù)據(jù)都可以作為列表的元素竞思, 例如: 數(shù)字搞坝、字符串、列表干旁、字典驶沼、元祖、函數(shù)争群、自定義類型等
2)同一個列表中的不同元素的類型可以不一樣
3.查 - 獲取列表中的元素
1)獲取單個元素: 列表[下標]
name_list = ['vivi', '1', '劉','陳', '鄧']
print(name_list[1])
2)獲取部分元素(切片):列表[開始下標:結束下標:步長]
列表切片和字符串切片語法一樣回怜,但是字符串切片的結果數(shù)字符串,列表切片的結果是列表
name_list = ['vivi', '1', '劉','陳', '鄧']
print(name_list[:])
print(name_list[::-1])
3)遍歷
for 變量 in 列表:
循環(huán)體
變量直接取列表中每個元素
name_list = ['vivi', '1', '劉','陳', '鄧']
for item in name_list:
print(item)
for item in name_list[::-1]:
print(item)
通過遍歷下標取遍歷列表
name_list = ['vivi', '1', '劉','陳', '鄧']
for index in range(len(name_list)):
print(index, name_list[index])
for index in range(-1, -len(name_list)-1, -1):
print(index, name_list[index])
1.增(在列表中添加元素)
1)列表.append(元素) - 在列表的最后添加一個元素
film_list = ['一出好戲','無間道', '流浪地球']
film_list.append('復仇者聯(lián)盟')
print(film_list)
2)列表.insert(下標换薄,元素) - 在列表指定的下標前插入指定元素
film_list = ['一出好戲','無間道', '流浪地球']
film_list.insert(1, '肖申克')
print(film_list)
2.刪(刪除列表中的元素)
1)del 列表[下標] - 刪除列表中指定下標對應的元素
film_list = ['一出好戲','無間道', '流浪地球']
del film_list[0]
print(film_list )
2)列表.remove(元素) - 刪除中第一個指定元素(可能存在重復元素玉雾,只刪第一個)
注意:被刪除的元素如果不存在會報錯
age_list = [1, 4, 5, 4]
age_list.remove(4)
print(age_list)
3)
列表.pop() - 取出列表中最后一個元素翔试,返回被取出的數(shù)據(jù)
列表.pop(下標) - 取出列表中下標指定元素,返回被取出的數(shù)據(jù)
3,改(修改列表中某個元素的值)
列表[下標] = 新值 - 將列表中指定下標對應元素改為新值
age_list = [1, 4, 5, 4]
age_list[0] = 2
print(age_list)
練習:刪除低于60分的
scores = [89, 59, 43, 100, 98, 30, 70, 45, 57, 88]
new_scores = []
for num in scores:
if num > 60:
new_scores.append(num)
print(new_scores)
scores = [89, 59, 43, 100, 98, 30, 70, 45, 57, 88]
index = 0
while index < len(scores):
if scores[index] < 60:
del scores[index]
continue
index += 1
print(scores)
scores = [89, 59, 43, 100, 98, 30, 70, 45, 57, 88]
temp = scores[:]
for score in temp:
if score < 60:
scores.remove(score)
print(scores)
1.數(shù)學運算:+抹凳,*
1)列表1+列表2 - 將兩個列表中的元素合并產(chǎn)生一個新的列表
list1 =[1, 2, 3]
list2 = ['a', 'b', 'c']
print(list1 + list2) #[1, 2, 3, 'a', 'b', 'c']
2)列表N* - 將列表中的元素重復N次產(chǎn)生一個新的列表
list1 =[1, 2, 3]
print(list1*3) # [1, 2, 3, 1, 2, 3, 1, 2, 3]
2.比較運算 ==遏餐,!=
list1 =[1, 2, 3]
print(list1 == [1, 2, 3])
print([3, 2, 1] > [1, 2, 3])
3.in 和 not in
元素 in 列表 - 判斷列表中是否存在指定的元素
name_list = ['路飛', '柯南', '鳴人']
print('路飛' in name_list)
4.len(序列)
5.list(數(shù)據(jù)) - 將數(shù)據(jù)轉換成列表
1)所有的序列都可以轉換成列表
2)將序列的元素作為列表元素
list3 = list('he llo ')
print(list3)
list4 = list(range(5))
print(list4)
1.內(nèi)置函數(shù)
max(序列) min(序列) sum(序列)
max,min - 序列中元素的類型必須一樣赢底;序列中的元素必須支持比較運算符
sum - 只支持數(shù)字序列求和
scores = [11, 45, 64, 35, 73, 56, 100]
print(max(scores))
print(min(scores))
print(sum(scores))
2.列表相關的方法
1)列表.count(元素) - 統(tǒng)計類別中指定元素的個數(shù)
scores = [11, 45, 64, 100, 35, 73, 56, 100]
print(scores.count(100))
2)列表.extend(序列) - 將序列中的元素依次添加到列表的最后
scores.extend('abc')
print(scores)
3)列表.index(元素) - 獲取列表中指定元素對應的的下標(只獲取第一個)
注意:如果元素不存在失都,會報錯
scores = [11, 45, 64, 100, 35, 73, 56, 100]
print(scores.index(100))
4)列表.reverse() -列表倒序
scores = [11, 45, 64, 100, 35, 73, 56, 100]
scores.reverse()
print(scores)
5)列表.sort() - 將列表中的元素從小到大排序
列表.sort(reverse = True) - 將列表中的元素從大到小排序
列表中的元素類型必須一樣;元素必須支持比較運算符
scores = [11, 45, 64, 100, 35, 73, 56, 100]
scores.sort()
print(scores)
6)列表.clear() - 清空列表
scores = [11, 45, 64, 100, 35, 73, 56, 100]
scores.clear()
print(scores)
7)幸冻;列表.copy() - 復制列表中的元素粹庞,產(chǎn)生新的列表, 和列表[:]功能一樣
這個是淺拷貝
scores = [11, 45, 64, 100, 35, 73, 56, 100]
new_scores = scores.copy()
print(id(scores), id(new_scores))
練習:打印列表中出現(xiàn)次數(shù)最多的元素
nums = [1, 2, 3, 5, 2, 3, 3, 1, 1]
count_max = 0
for num in nums:
count1 = nums.count(num)
if count1 > count_max:
count_max = count1
max_num = []
for num in nums:
if count_max == nums.count(num):
if num not in max_num:
max_num.append(num)
print(max_num)
列表元素去重
nums = [1, 2, 3, 5, 2, 3, 3, 1, 1]
new_nums =[]
for num in nums:
if num not in new_nums:
new_nums.append(num)
print(new_nums)
nums = [1,3,1, 2, 3, 5, 2, 3, 3, 1, 1,4,5,6,7,2,4,6,8,3,6,2]
count = 0
for num in nums:
counts = nums.count(num)
for counts_reduce in range(counts-1):
nums.remove(num)
print(nums)