2.列表简介

列表简介

1.1 列表是什么

列表有一系列特定顺序排列的元素组成(通常给列表起名字用复数名称,如letters)

在python中,列表用[]表示,用逗号来分隔其中的元素

1.1.1 访问列表元素

列表是有序集合,我们访问列表时,只需将该元素的位置索引告诉python即可

bicycles = ['trek','cannondale','redline','specialized']
print(bicycles[0].title())
Trek

1.1.2 索引是从0而不是1开始的

在python中,第一个列表元素的索引位0,而不是1,当然,大多数编程语言也是如此

在python中还有一个特殊的索引:负索引

bicycles = ['trek','cannondale','redline','specialized']
print(bicycles[-1].title())
print(bicycles[-2].title())
Specialized
Redline

-1,-2分别返回了倒数第一个和倒数第二个元素

1.1.3 使用列表中的各个值

跟使用变量一样使用该值,指定索引提取该值即可

2. 修改,添加和删除元素

2.1 修改列表元素

修改列表元素与访问列表元素类似,要修改列表元素,可指定列表名和要修改的元素的索引,再指定该元素的新值

bicycles = ['trek','cannondale','redline','specialized']
print(bicycles[0].title())  #旧值
bicycles[0] = '比亚迪'
print(bicycles[0].title())  #新值
Trek
比亚迪

2.2在列表中添加元素

①再列表末尾添加元素

方法append()可以再列表末尾添加新元素

bicycles = ['trek','cannondale','redline','specialized']
print(bicycles)
bicycles.append('ducati')  #添加到了末尾
print(bicycles)
['trek', 'cannondale', 'redline', 'specialized']
['trek', 'cannondale', 'redline', 'specialized', 'ducati']
②在列表中插入元素

方法insert()可以在列表的任何位置添加新元素,但也要指定新元素的索引和值

bicycles = ['trek','cannondale','redline','specialized']
print(bicycles)
bicycles.insert(0,'ducati')
print(bicycles)
['trek', 'cannondale', 'redline', 'specialized']
['ducati', 'trek', 'cannondale', 'redline', 'specialized']

'ducati’被插入到了列表索引0的位置,其他元素都向后移动一个位置

2.3在列表中删除元素

① 使用del语句删除元素

如果知道要删除元素的位置,可以使用del语句

bicycles = ['trek','cannondale','redline','specialized']
del bicycles[0]
print(bicycles)
['cannondale', 'redline', 'specialized']   #删除了'trek'

注意:当用del语句将值从列表中删除以后,以后就无法访问这个值了

②使用方法pop()删除元素

方法pop()可删除列表末尾的元素,但是删除后仍然可以访问该元素

bicycles = ['trek','cannondale','redline','specialized']
poped_motorcyle = bicycles.pop()
print(bicycles)
print(poped_motorcyle)
['trek', 'cannondale', 'redline']  #确实把'specialized'删除了
specialized                        #因为使用了变量poped_motorcyle存储了起来,所以仍然可以访问
③弹出列表中任意位置处的元素

仍然可以使用pop()方法来删除元素,但是要指定索引位置

bicycles = ['trek','cannondale','redline','specialized']
first_owned = bicycles.pop(0)
print(bicycles)
print('The first motorcycle I owned was a '+first_owned+'.')
['cannondale', 'redline', 'specialized']
The first motorcycle I owned was a trek.  #弹出的就是列表中的第一个元素

判断:使用del语句还是pop()方法

区别:del语句删除了列表中的元素后,后面是不能使用的

​ pop()当弹出了(删除)了该元素之后,可以存储到变量中,后面继续使用

④根据值删除元素

当有时候我们只知道要删除的是哪个值,但是并不知道删除的值的索引,可以使用remove()方法

remove()方法跟pop()方法一样,删除了列表中的元素后,我们还是可以将删除的元素存储在变量中,后面可以继续使用

bicycles = ['trek','cannondale','redline','specialized']
too_expensive = 'redline'
bicycles.remove(too_expensive)
print(bicycles)
print(too_expensive.title()+' is too expensive for me')
['trek', 'cannondale', 'specialized']    #已经删除了'Redline'
Redline is too expensive for me

2.3 组织列表

2.3.1 使用sort()对列表进行永久性排序
cars = ['bmw','audi','toyota','subaru']
cars.sort()
print(cars)
['audi', 'bmw', 'subaru', 'toyota']    #按字母顺序进行了排序

方法sort()永久性的修改了列表元素的排列顺序

当我们在sort()方法中传递参数reverse=true时,可以对列表中的元素进行逆向排序

cars = ['bmw','audi','toyota','subaru']
cars.sort(reverse=True)
print(cars)
['toyota', 'subaru', 'bmw', 'audi']   #对字母进行了逆向排序
2.3.2 使用sorted()对列表进行临时排序

函数sorted()能让你用特定的顺序排列显示元素,同时不影响原始排列顺序

cars = ['bmw','audi','toyota','subaru']
print('Here is original list:')
print(cars)
print('\nHere is the sorted list:')
print(sorted(cars))
print('\nHere is original list again:')
print(cars)
Here is original list:
['bmw', 'audi', 'toyota', 'subaru']

Here is the sorted list:
['audi', 'bmw', 'subaru', 'toyota']

Here is original list again:
['bmw', 'audi', 'toyota', 'subaru']

调用函数sorted()方法之后,原始的cars列表原始排列顺序并没有变

如果想要列表排列顺序按照逆序,可以

print(sorted(cars,reverse=True))
2.3.3 倒着打印列表
cars = ['bmw','audi','toyota','subaru']
print(cars)
cars.reverse()
print(cars)
['bmw', 'audi', 'toyota', 'subaru']
['subaru', 'toyota', 'audi', 'bmw']

reverse()方法是反转列表中的元素排列顺序,reverse()方法永久性地修改列表中元素的排列顺序

永久但并不永久

只需要在调用一次reverse()方法就可以回到原始的排列顺序

2.3.4 确定列表的长度

使用len()方法可以快速知道列表的长度

cars = ['bmw','audi','toyota','subaru']
print(len(cars))
4

2.4 使用列表时避免索引错误

经常遇到的一种情况就是索引越界

ports = ['beijing','shanghai','xinjiang','changan','chongqing']
print(ports[5])
Traceback (most recent call last):
  File "D:\Python\Python-project\birthday.py", line 2, in <module>
    print(ports[5])
          ~~~~~^^^
IndexError: list index out of range

发生索引越界的时候,可以将列表长度打印出来,看时候自己索引判断错误

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值