第十單元 Python列表

一、列表的介紹

思考:前面學習的字符串可以用來存儲一串信息,那麼想一想,怎樣存儲咱們班所有同學的名字呢?
定義100個變量,每個變量存放一個學生的姓名可行嗎?有更好的辦法嗎?

1.1 格式

變量=[,,,]
  • 案例
namesList = ['xiaoWang','xiaoZhang','xiaoHua']

案例:不同類型

namesList = ['xiaoWang',12,[1,2,3],(1,2)]

二、列表的相關操作

列表

names1 = ['xiaoWang','xiaoZhang','xiaoHua']
names2 = [23,34,45]
name='anfly'

2.1 列表的新增

append, extend, insert

2.1.1 append

  • 案例:列表和字符串
names1.append(name)
print(names1)

輸出:

['xiaoWang', 'xiaoZhang', 'xiaoHua', 'anfly']
  • 案例:列表和列表
names1.append(names2)
print(names1)
#['xiaoWang', 'xiaoZhang', 'xiaoHua', [23, 34, 45]]

2.1.2 extend

  • 案例:列表和字符串
names1.extend(name)
print(names1)
#['xiaoWang', 'xiaoZhang', 'xiaoHua', 'a', 'n', 'f', 'l','y']
  • 案例:列表和字符串
names1.extend(names2)
print(names1)
#['xiaoWang', 'xiaoZhang', 'xiaoHua', 23, 34, 45]
  • extend和append區別
append的最終列表中添加的是一個元素,extend的最終列表中顯示的是追加的多個元素

2.1.3 insert

指定對應索引新增數據

names1.insert(1,name)
print(names1)
#['xiaoWang', 'jack', 'xiaoZhang', 'xiaoHua']
  • 思考:如果新增的索引不存在?會出現什麼問題(會默認添加到最後)
names1.insert(111,name)
print(names1)
#['xiaoWang', 'xiaoZhang', 'xiaoHua', 'jack']

2.2 列表的修改

修改元素的時候,要通過下標來確定要修改的是哪個元素,然後才能進行修改

2.2.1 索引修改

  • 案例:索引存在時修改
names1[0]="xiaoli"
print(names1)
#['xiaoli', 'xiaoZhang', 'xiaoHua']
  • 案例:索引不存在時修改
names1[10]="xiaoli"
print(names1)
#IndexError: list assignment index out of range

2.3 列表的刪除

del:根據下標進行刪除
pop:刪除最後一個元素
remove:根據元素的值進行刪除

2.3.1:del

  • 案例
del names1[0]
print(names1)
#['xiaoZhang', 'xiaoHua']

2.3.2 pop(默認最後一個元素)

  • 案例
names1.pop()
print(names1)
#['xiaoWang', 'xiaoZhang']

2.3.3 remove

  • 案例
names1.remove("xiaoWang")
print(names1)
#['xiaoZhang', 'xiaoHua']

2.4 列表的查詢

index, count

2.4.1:index

index查詢列表中的元素,如果存在就返回給元素的索引,不存在就報錯

  • 案例
print(names1.index("xiaoZhang"))
#1
print(names1.index("xiaoZhang1"))
#ValueError: 'xiaoZhang1' is not in list

2.4.2 count

count查詢列表中的元素的個數

  • 案例
print(name.count("c"))
#1

2.5:列表的排序

  1. sort方法是將list按特定順序重新排列,默認爲由小到大,參數reverse=True可改爲倒序,由大到小。
  2. reverse方法是將list反轉
  • 案例:排序
nums=[34,22,15,68,89]
nums.sort()
print(nums)
#[15, 22, 34, 68, 89]

案例:反轉

nums=[34,22,15,68,89]
nums.reverse()
print(nums)
#[89, 68, 15, 22, 34]

2.6 列表的循環取值

  • 方式一:for循環
namesList = ['xiaoWang', 'xiaoZhang', 'xiaoHua']
for name in namesList:
    print(name)
  • 方式二:while循環
namesList = ['xiaoWang', 'xiaoZhang', 'xiaoHua']
length = len(namesList)
i = 0
while i < length:
    print(namesList[i])
    i += 1

2.7 列表的嵌套

類似while循環的嵌套,列表也是支持嵌套的

  • 格式
變量名=[,[,]]
  • 案例
names = ['xiaoWang','xiaoZhang','xiaoHua',["xiaomi","xiaolan"]]
  • 作業:
schoolNames = [['北京大學','清華大學'],
                    ['南開大學','天津大學','天津師範大學'],
                    ['浙江大學'],['河北大學','河北科技大學']]
1:利用下標索引取出  河北科技大學print(schoolNames[3][1])
2:刪除  河北大學del schoolNames[3][0]
3:插入  河北農業大學schoolNames[3].insert(1, "河北農業大學")    
names = ['xiaoWang','xiaoZhang','xiaoHua',["xiaomi","xiaolan"]]
names[3].insert(2,"xiaohua")
print(names)
  • 課堂作業
課堂作業1
01. 靜態初始化一個空列表list,使用循環向列表中添加  1--10之間的所有整數;
02. 向01中創建的列表list中添加一個字符串“XuanGe”
03. 刪除下標索引爲0的元素
04. 將下標索引爲1的元素改爲66
05. 輸出列表中的第3個元素
作業2
list= [23,34,35,31,22,33,55,43,78,34]
01:查詢出所有的偶數添加到列表list1中,並將list1排序
02:將01中排序的list1通過extend添加list2= [[[3,21],2],[4],3],取出元素21
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章