Python从入门到实践
第三章 列表简介
3.1 列表是什么
在python中,列表是一系列按特定顺序排列的元素,
可以将任何东西加入列表当中,其中的元素可以完全没有任何关系
一般列表的取名可以指定 一个表示复数的名称例如names、letters等
在Python中,用[]来表示一个列表,其与数组不同,
不同点在于:其可以存各种不同数据类型的数据;其结构可变,元素数量和种类可以随意更改;但是其性能没有数组高
# 测试
bicycles = ['trek','redline','cannondale']
print(bicycles)
#输出
['trek', 'redline', 'cannondale']
接下来我们可以采用 bicycles[num] 的格式来对列表元素进行访问(类似数组)
#访问列表元素
print(bicycles[0])
print(bicycles[0].title())
#输出:
trek
Trek
上述示例可以看出我们利用该方法进行访问后,因为其元素为字符串类型,所以也可以直接对其进行操作
在各类语言中,索引基本都是从0开始,在Python中也不例外
但是在Python中还提供一种特殊的语法,即将索引指定为-1.可以让Python返回最后一个列表元素
# 访问第-1个元素
print(bicycles[-1])
#输出:
cannondale
那么在访问后的各个元素均可以与正常变量一样使用,也可以在使用其他变量进行接收。
3.2 修改、添加和删除元素
上文当中提到,列表的创建基本上是动态的,这意味着列表被创建后,可以随着程序的运行增删元素。
# 修改列表元素
bicycles = ['trek','redline','cannondale']
print(bicycles)
bicycles[0] = 'ducati'
print(bicycles)
#输出
['trek', 'redline', 'cannondale']
['ducati', 'redline', 'cannondale']
#添加元素
#末尾添加(类似于栈)
bicycles.append('ducati')
print(bicycles)
#输出
['trek', 'redline', 'cannondale', 'ducati']
#插入(insert(),指定位置,传入插入元素)
bicycles.insert(0,'ducati')
print(bicycles)
#输出:
['ducati', 'trek', 'redline', 'cannondale']
#删除元素
#del语句进行删除(指定位置删除)
del bicycles[0]
print(bicycles)
#输出:
['trek', 'redline', 'cannondale']
#pop()方法删除(类似栈)
bicycles.pop()
print(bicycles)
#输出:
['trek', 'redline']
#在利用pop()方法时,其可以弹出任意位置的元素,只需要传入index number即可
#remove()方法,根据值删除元素(未知元素位置时使用)
bicycles.remove('trek')
print(bicycles)
#输出
['redline', 'cannondale']
#注意remove方法只能删除检测到的第一个值,其他相同名称的值无法删除
3.3 组织列表
在创建的列表中,元素的排列顺序往往无法预测,
但是我们可以使用Python提供的各种组织列表的方式来进行排序
首先我们可以利用sort()对列表进行永久性的排序
#还是使用上述列表
bicycles.sort()
print(bicycles)
#输出
['cannondale', 'redline', 'trek']
从上述实验中可见,sort可以对列表元素按首字母大小进行排列且为永久性的
那么我们如果需要对列表进行临时排序,我们可以使用sorted()来进行
# 临时排序
print("这是原始列表:")
print(bicycles)
print("这是临时排序后的列表:")
print(sorted(bicycles))
#输出
这是原始列表:
['trek', 'redline', 'cannondale']
这是临时排序后的列表:
['cannondale', 'redline', 'trek']
以上两种为对列表进行排序的方法,在排序是可以考虑向sort()传入参数reverse = True,来对列表进行倒序排序
如果之后要反转元素的排列顺序,可以使用方法reverse(),
reverse()的反转不是按照字母顺序相反来进行反转,只是反转列表元素的排列顺序
在对列表元素进行索引时,如果不确定最后一个的序号是多少,可以使用-1来进行索引
总结
今天对Python里面一个很特殊的类型:列表,进行了区别,具体去与数组进行了对比,
列表更加灵活,但是相应的性能也会较差一些