Python數據類型之列表的基本操作

什麼是列表

列表是Python中非常重要的數據類型,通常作爲函數的返回值。由一組元素組成,列表可以實現添加、刪除和查找操作,元素值可以被修改

由一系列按照特定的順序排列起來的元素所組成列表

#普通的變量定義形式
tom = "Tom"
jack = "Jack"
john = "John"

pet1 = "cat"
pet2 = "dog"
pet3 = "bird"

#定義列表,語法格式
name = ['Tom','Jack','John']
pet = ['cat','dog','bird']   #相比一個一個來定義會比較簡潔,方便

#打印列表
print(name)
print(pet)
['Tom', 'Jack', 'John']
['cat', 'dog', 'bird']

用索引訪問列表元素

#通過索引讀取列表中的元素,索引從0開始,-1代表最後一個
print(name[0])
print(pet[2])
Tom
bird   #這些數字就是列表中排列的順序,是從0開始,按照一定的順序,以此類推
#-1代表元素的最後一個,-2代表倒數第二個,以此類推
print(name[-1])
print(pet[-2])
John
dog

列表的基本操作

修改:

通過索引獲取元素,進行修改

添加:

append(元素):在列表末尾添加

insert(索引,元素):在列表指定位置插入

刪除:

del:根據元素的索引刪除元素,被刪除的元素不可以在進行訪問

pop():刪除列表末尾的元素

pop(索引):彈出指定位置的元素,被刪除的元素還能繼續使用

remove(value):根據元素的值進行刪除

排序

sorted(列表):臨時排序

sort():永久排序

sort(reverse=True):倒序排序

len():列表長度

修改列表的元素

#通過索引獲取元素,進行修改
name[1] = 'San'
print(name)
['Tom', 'San', 'John']  #之前定義的是Jack,現在修改成了San

向列表中添加元素

#在列表末尾添加新元素
name.append('Bob')
print(name)
['Tom', 'San', 'John', 'Bob']
#在列表指定位置添加新元素
print(pet)
pet.insert(0,'penguin')
print(pet)
['cat', 'dog', 'bird']
['penguin', 'cat', 'dog', 'bird']

pet.insert(-2,'pig')
print(pet)
['penguin', 'cat', 'pig', 'dog', 'bird']

刪除列表中的元素

#根據元素的索引刪除元素
print(pet)
del pet[0]
print(pet)
['penguin', 'cat', 'pig', 'dog', 'bird']
['cat', 'pig', 'dog', 'bird']  #使用del刪除的元素不可以進行訪問
#刪除列表末尾的元素
print(pet)
new_pet = pet.pop()  #不加參數在表最後一個
print(new_pet)
print(pet)
['cat', 'pig', 'dog', 'bird']
bird
['cat', 'pig', 'dog'] 
#彈出指定位置的元素
print(pet)
pet.pop(2)
print(pet)
['cat', 'pig', 'dog']
['cat', 'pig']
#訪問剛纔刪除的值
print(new_pet)
bird
#根據元素的值進行刪除
print(pet)
pet.remove('cat')
print(pet)
['cat', 'pig']
['pig']
#刪除一個不存在值
pet.remove('d')
print(pet)
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-16-086f691d7e32> in <module>
      1 #刪除一個不存在值
----> 2 pet.remove('d')
      3 print(pet)

ValueError: list.remove(x): x not in list
#刪除的值必須是真實存在的,不然就會報錯

列表排序

按照26個字母的順序進行排序

#定義列表:汽車的品牌
print('原始順序:')
brand = ['audi','bmw','toyota','byd','luhu']
print(brand)
#臨時排序
print('臨時排序:')
print(sorted(brand))
print(brand)
#永久排序
print('永久排序:')
brand.sort()
print(brand)
#倒序排序
print('倒序排序:')
brand.sort(reverse=True)
print(brand)
原始順序:
['audi', 'bmw', 'toyota', 'byd', 'luhu']
臨時排序:
['audi', 'bmw', 'byd', 'luhu', 'toyota']
['audi', 'bmw', 'toyota', 'byd', 'luhu']   #排完序之後就又變會原來的順序了
永久排序:
['audi', 'bmw', 'byd', 'luhu', 'toyota']
倒序排序:
['toyota', 'luhu', 'byd', 'bmw', 'audi']

獲取列表的長度

#獲取列表的長度
print(len(brand))
5

常見錯誤:索引越界

比如說列表長度爲5,也就是說索引最多到4

#正確索引
print(brand[4])
audi
#錯誤索引,索引越界
print(brand[5])
---------------------------------------------------------------------------
IndexError                                Traceback (most recent call last)
<ipython-input-10-173eb23c555f> in <module>
----> 1 print(brand[5])

IndexError: list index out of range #索引錯誤,列表索引超出範圍

練習

列表練習(一)

  1. 定義一個列表,存儲5個科目名稱
  2. 新增科目(末尾新增&指定位置新增)
  3. 修改科目
  4. 刪除科目,並且在打印科目列表的時候,能夠顯示刪除了哪個科目
  5. 刪除指定名稱的科目
  6. 刪除第2個科目
#1、定義一個列表,存儲5個科目名稱
print('定義列表:')
subjects = ['語文','數學','英語','物理','歷史']
print(subjects)
#2、新增科目(末尾新增&指定位置新增)
#末尾新增
print('末尾新增:')
print(subjects)
subjects.append('化學')
print(subjects)
#指定位置新增
print('指定位置新增:')
print(subjects)
subjects.insert(0,'生物')
print(subjects)
#3、修改科目
print('修改科目:')
print(subjects)
subjects[1] = '政治'
print(subjects)
#4、刪除科目,並且在打印科目列表的時候,能夠顯示產出了哪個科目
print('刪除科目,並且顯示刪除了哪個科目:')
print(subjects)
new_subjects = subjects.pop()
print(new_subjects)
print(subjects)
#5、刪除指定名稱的科目
print('刪除指定名稱的科目:')
print(subjects)
subjects.remove('物理')
print(subjects)
#6、刪除第二個科目
print('刪除第二個科目:')
print(subjects)
subjects.pop(1)
print(subjects)
---------------------------------------------------------------------------
定義列表:
['語文', '數學', '英語', '物理', '歷史']
末尾新增:
['語文', '數學', '英語', '物理', '歷史']
['語文', '數學', '英語', '物理', '歷史', '化學']
指定位置新增:
['語文', '數學', '英語', '物理', '歷史', '化學']
['生物', '語文', '數學', '英語', '物理', '歷史', '化學']
修改科目:
['生物', '語文', '數學', '英語', '物理', '歷史', '化學']
['生物', '政治', '數學', '英語', '物理', '歷史', '化學']
刪除科目,並且顯示刪除了哪個科目:
['生物', '政治', '數學', '英語', '物理', '歷史', '化學']
化學
['生物', '政治', '數學', '英語', '物理', '歷史']
刪除指定名稱的科目:
['生物', '政治', '數學', '英語', '物理', '歷史']
['生物', '政治', '數學', '英語', '歷史']
刪除第二個科目:
['生物', '政治', '數學', '英語', '歷史']
['生物', '數學', '英語', '歷史']

列表練習(二)

  1. 將5個城市的名稱存儲到列表中,並且保證名稱不是按照字母順序排列的
  2. 打印出原始的城市列表信息
  3. 使用sorted()方法按字母順序打印城市列表,但是不要修改列表元素的順序
  4. 打印該列表,確認城市名稱排列順序沒有被修改
  5. 使用sort()方法排列城市名稱,確保永久性修改排列順序
#1、將5個城市的名稱存儲帶列表中,並且保證名稱不是按照字母順序排列的
print('定義城市列表:')
city = ['zhengzhou','shanghai','beijing','guangzhou','luoyang']
#2、打印出來原始的城市列表信息
print('原始列表信息:')
print(city)
#3、使用sorted()方法按字母順序打印城市列表,但不要修改列表元素的順序
print('sorted()方法排序--臨時排序:')
print(city)
print(sorted(city))
#4、打印該列表,確認城市名稱排序沒有被修改
print('驗證城市名稱排序沒有被修改:')
print(city)
#5、使用sort()方法排序城市名稱,確保永久性排列順序
print('使用sort()排序--永久排序:')
city.sort()
print(city)
---------------------------------------------------------------------------
定義城市列表:
原始列表信息:
['zhengzhou', 'shanghai', 'beijing', 'guangzhou', 'luoyang']
sorted()方法排序--臨時排序:
['zhengzhou', 'shanghai', 'beijing', 'guangzhou', 'luoyang']
['beijing', 'guangzhou', 'luoyang', 'shanghai', 'zhengzhou']
驗證城市名稱排序沒有被修改:
['zhengzhou', 'shanghai', 'beijing', 'guangzhou', 'luoyang']
使用sort()排序--永久排序:
['beijing', 'guangzhou', 'luoyang', 'shanghai', 'zhengzhou']
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章