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']
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章