【Python3.7学习笔记】四、列表

【Python3.7学习笔记】四、列表

学习笔记目录

【Python3.7学习笔记】一、环境搭建
【Python3.7学习笔记】二、第一个python程序
【Python3.7学习笔记】三、变量和简单数据类型
【Python3.7学习笔记】四、列表
【Python3.7学习笔记】五、字典

目录

列表

列表由一系列按特定顺序排列的元素组成。python使用[]来表示列表,并用逗号来分隔其元素。例如:

# 自行车列表
bicycles = ['trek', 'cannondale', 'redline', 'specialized']
print(bicycles)

输出结果:

[‘trek’, ‘cannondale’, ‘redline’, ‘specialized’]

访问列表元素

列表是有序集合,因此要访问列表的任何元素,只需将该元素的位置或索引告诉Python解释器即可。将索引号放入方括号中。各式:列表名[索引],例如:

# 自行车列表
bicycles = ['trek', 'cannondale', 'redline', 'specialized']
print(bicycles[0])

输出结果:

trek

列表索引

  • python,索引从0开始
# 自行车列表
bicycles = ['trek', 'cannondale', 'redline', 'specialized']

# 访问列表元素,使用下标访问,索引从0开始而不是1开始
print(bicycles[0])
print(bicycles[1])
print(bicycles[3])

输出结果:

trek
cannondale
specialized
  • 特殊语法
    python为访问最后一个列表元素提供了一种特殊语法。通过将索引指定为-1,可让python返回最后一个列表元素,这种语法很有用,因为你经常需要在不知道列表长度的情况下访问最后的元素。这种约定也适用于其他负数索引,例如,索引-2返回倒数第二个列表元素,索引-3返回倒数第三个列表元素,以此类推
# 最后的元素
print(bicycles[-1])

# 倒数第二个元素
print(bicycles[-2])

# 倒数第三个元素
print(bicycles[-3])

修改列表元素

修改列表元素的语法和访问列表元素的语法类似。各式:列表名[索引]=新值,如:

# 修改元素
motocycles = ['honda', 'yamaha', 'suzuki']
print(motocycles)

motocycles[0] = 'ducati'
print(motocycles)

输出结果:

['honda', 'yamaha', 'suzuki']
['ducati', 'yamaha', 'suzuki']

返回目录

添加元素到列表

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

在列表中添加新元素时,最简单的方式是将元素添加到列表末尾。例如:

# 1、使用append()方法在列表末尾增加一个元素
motocycles = ['honda', 'yamaha', 'suzuki']
motocycles.append('ducati')
print(motocycles)

输出结果:

['honda', 'yamaha', 'suzuki', 'ducati']

append()能动态的创建列表,如下:先创建一个空列表,然后添加元素。

motocycles = []
motocycles.append('honda')
motocycles.append('yamaha')
motocycles.append('suzuki')
motocycles.append('ducati')
print(motocycles)

输出结果:

['honda', 'yamaha', 'suzuki', 'ducati']
使用insert()在列表的任何位置添加元素

使用insert()方法可在列表的任何位置添加元素。只需要指定新元素的索引和值。

# 2、使用方法insert()可在列表的任何位置添加新元素。
# 为此,你需要指定新元素的索引和值
motocycles = ['honda', 'yamaha', 'suzuki']
motocycles.insert(0,'ducati')
print(motocycles)

输出结果:

[ 'ducati','honda', 'yamaha', 'suzuki']

返回目录

从列表删除元素

使用del()删除元素

使用del()函数删除元素,只需提供元素在列表中的位置索引即可,如:

# 1、使用del语句删除元素,
# 如果知道要删除的元素在列表中的位置,
# 可使用del语句
motocycles = ['honda', 'yamaha', 'suzuki']
del motocycles[0]
print(motocycles)

输出结果:

[ 'yamaha', 'suzuki']
使用pop()删除元素

方法pop()可删除列表末尾的元素,并能继续使用它的值,类似与,弹出栈顶元素,如:

# 2、使用pop()删除元素,
# 方法pop()可删除列表末尾的元素,
# 并让你能够接着使用它
motocycles = ['honda', 'yamaha', 'suzuki']
print(motocycles)
popped_motocycle = motocycles.pop()
print(motocycles)
print(popped_motocycle)

输出结果:

['honda', 'yamaha', 'suzuki']
['honda', 'yamaha']
suzuki
使用pop()删除任何位置的元素

值需要提供删除元素的索引即可,如:

# 3、弹出列表中任何位置的元素
motocycles = ['honda', 'yamaha', 'suzuki']
print("11")
print(motocycles)
first_owned = motocycles.pop(1)
print(motocycles)
second_owned = motocycles.pop(0)
print("22")
print(motocycles)
print("first_owned=="+first_owned)
print("second_owned=="+second_owned)

输出结果:

11
['honda', 'yamaha', 'suzuki']
['honda', 'suzuki']
22
['suzuki']
first_owned==yamaha
second_owned==honda

当你使用pop()时,被弹出的元素就不在列表中了,如果你不能确定该使用del()还是pop(),判断标准:

  • 如果你要从列表中删除一个元素,且不再以任何方式使用它,就使用del()
  • 如果你要做删除元素后还能继续使用它,就使用pop()
使用remove()根据值删除元素

有时候,你不知道要从列表中删除的值所处位置。如果你只知道要删除元素的值,可使用方法remove(),如:

# 4、根据值删除元素
# 如果你不知道要从列表中删除的值所处的位置。
# 如果你只知道要删除的元素的值,
# 可使用方法remove()
motocycles = ['honda', 'yamaha', 'suzuki', 'ducati']
print(motocycles)

motocycles.remove('ducati')
print(motocycles)

输出结果:

['honda', 'yamaha', 'suzuki', 'ducati']
['honda', 'yamaha', 'suzuki']

使用remove()从列表中删除元素时,也可接着使用它的值,如:

# 使用remove()从列表中删除元素时,也可接着使用它的值
motocycles = ['honda', 'yamaha', 'suzuki', 'ducati']
print(motocycles)

too_expensive = 'ducati'
motocycles.remove(too_expensive)
print(motocycles)
print("\nA "+too_expensive+" is too expensive for me!")

输出结果:

['honda', 'yamaha', 'suzuki', 'ducati']
['honda', 'yamaha', 'suzuki']

A ducati is too expensive for me!

注意:方法remove()只删除第一个指定的值。如果要删除的值可能在列表中出现多次,就需要使用循环来判断是否删除了所有这样的值。

返回目录

使用sort()对列表进行永久性排序

假设你有一个汽车列表,并要让其中的汽车按字母顺序排列,如:

# 方法sort()对列表进行排序
# 假设你有一个汽车列表,并要让其中的汽车按字母顺序排列。
cars = ['bmw', 'audi', 'toyota', 'subaru']
cars.sort()
print(cars)

输出结果:

['audi', 'bmw', 'subaru', 'toyota']

可以按与字母顺序相反的顺序排列列表元素,为此,只需向sort()方法传递参数reverse=True 如:

# 可以按与字母顺序相反的顺序排列列表元素,
# 为此,只需向sort()方法传递参数reverse=True
cars = ['bmw', 'audi', 'toyota', 'subaru']
cars.sort(reverse=True)
print(cars)

输出结果:

['toyota', 'subaru', 'bmw', 'audi']

使用sorted()对列表进行临时性排序

使用函数sorted()对列表进行临时排序,不影响列表原始顺序,如:

# 使用函数sorted()对列表进行临时排序
cars = ['bmw', 'audi', 'toyota', 'subaru']
print(cars)
print(sorted(cars))
print(cars)

输出结果:

['bmw', 'audi', 'toyota', 'subaru']
['audi', 'bmw', 'subaru', 'toyota']
['bmw', 'audi', 'toyota', 'subaru']

使用reverse()反转列表

要反转列表元素的排列顺序,可使用方法reverse(),如:

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

cars.reverse()
print(cars)

输出结果:

['bmw', 'audi', 'toyota', 'subaru']
['subaru', 'toyota', 'audi', 'bmw']

注意:reverse()不是指按与字母顺序相反的顺序排列列表原始,而只是反转列表元素的排列顺序,方法reverse()永久性的修改列表元素的排列顺序,但是可随时恢复到原来的排列顺序,为此再次调reverse()方法即可。

使用len()计算列表长度

使用len()计算列表长度,如:

# 列表的长度
motocycles = ['honda', 'yamaha', 'suzuki', 'ducati']
print("cars列表的长度:"+str(len(cars)))

输出结果:

cars列表的长度:4

返回目录

遍历列表

循环列表

# 遍历列表
motocycles = ['honda', 'yamaha', 'suzuki', 'ducati']
for motocycle in motocycles:
    print(motocycle)

输出结果:

honda
yamaha
suzuki
ducati

返回目录

避免缩进错误

python根据缩进来判断代码行与前一个代码行的关系。通过缩进让代码更易读;缩进使得代码整洁而结构清晰。

忘记缩进

如果忘记缩进,python解释器会提供一个traceback信息,提示缩进

忘记缩进额外的代码行

忘记缩进会导致逻辑错误

不必要的缩进

如果你不小心缩进了不需要缩进的代码,python解释器会提示traceback信息

遗漏了冒号

for语句末尾的冒号告知python,下一行是循环的第一行

返回目录

数值列表

使用函数range()

python函数range()能生成一系列的数字。

for value in range(1,5):
    print(value)

输出结果:

1
2
3
4

使用range()函数创建数字列表

函数list()将range()的结果直接转换为列表

numbers = list(range(1,5))
print(numbers)

输出结果:

[1, 2, 3, 4]

对数字列表进行统计计算

numbers = list(range(1,6))
print(numbers)
print(max(numbers))
print(min(numbers))
print(sum(numbers))

输出结果:

[1, 2, 3, 4, 5]
5
1
15

列表解析

numbers = list(range(1,11))
print(numbers)

squares = [value**2 for value in range(1,11)]
print(squares)

输出结果:

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

返回目录

##使用列表的一部分

切片

要创建切片,可指定第一个元素的索引和最后一个元素的索引+1

# 要创建切片,可指定第一个元素的索引和最后一个元素的索引+1
motocycles = ['honda', 'yamaha', 'suzuki', 'ducati']

# 包含0,1,2索引元素
print(motocycles[0:3])

# 包含1,2索引元素
print(motocycles[1:3])

# 包含0,1,2,3索引元素
print(motocycles[0:4])

# 包含1,2,3索引元素
print(motocycles[1:4])

# 包含0,1,2,3索引元素
print(motocycles[:4])

# 包含0,1,2索引元素
print(motocycles[:3])

# 索引从2开始元素
print(motocycles[2:])

# 包含倒数1元素
print(motocycles[-1:])

# 包含倒数2个元素
print(motocycles[-2:])

# 包含倒数3个元素
print(motocycles[-3:])

输出结果:

['honda', 'yamaha', 'suzuki']
['yamaha', 'suzuki']
['honda', 'yamaha', 'suzuki', 'ducati']
['yamaha', 'suzuki', 'ducati']
['honda', 'yamaha', 'suzuki', 'ducati']
['honda', 'yamaha', 'suzuki']
['suzuki', 'ducati']
['ducati']
['suzuki', 'ducati']
['yamaha', 'suzuki', 'ducati']

遍历切片

motocycles = ['honda', 'yamaha', 'suzuki', 'ducati']
for motocycle in motocycles[:4]:
    print(motocycle)

输出结果:

honda
yamaha
suzuki
ducati

复制列表

motocycles = ['honda', 'yamaha', 'suzuki', 'ducati']
# 使用切片拷贝整个列表
motocycles_copy = motocycles[:]
# 使用copy方法拷贝列表
motocycles_copy2 = motocycles.copy()
print(motocycles_copy)
print(motocycles_copy2)

输出结果:

['honda', 'yamaha', 'suzuki', 'ducati']
['honda', 'yamaha', 'suzuki', 'ducati']

返回目录

元组

列表适合于存储在程序运行期间可能变化的数据集。列表是可修改的。
python将不能修改的列表称为元组,使用圆括号括起来。可以使用索引访问值

定义元组

dimension = (200,50)
print(dimension[0])
print(dimension[1])

输出结果:

200
50

遍历元组

dimensions = (200,50)
for dimension in dimensions:
    print(dimension)

输出结果:

200
50

修改元组变量

dimensions = (200,50)
print("old dimensions:")
for dimension in dimensions:
    print(dimension)

dimensions = (100,100)
print("new dimensions:")
for dimension in dimensions:
    print(dimension)

输出结果:

old dimensions:
200
50
new dimensions:
100
100

不能修改元组中得值,但是可以给元组变量重新赋值

返回目录

欢迎大家一起讨论交流学习
我的 github 期待你的关注

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值