python基础:高级数据类型:列表

定义:

列表 由一系列按特定顺序排列的元素组成。可以将任何数据类型加入列表中其中的元素之间可以没有
任何关系。列表通常包含多个元素,一般命名为一个表示复数的名称。

使用:

1、创建简单列表

在Python中,用方括号([] )来表示列表,并用逗号来分隔其中的元素。

bicycles = ['trek', 'cannondale', 'redline', 'specialized']
print(bicycles)

Python将打印列表的内部表示,包括方括号。打印结果:

['trek', 'cannondale', 'redline', 'specialized']

2、访问列表元素

列表是一个有序集合,因此要访问列表元素,只需清楚元素位置或索引即可。要访问列表元素,可指出列表的名称,再指出元素的索引,并将其放在方括号内。
打印列表第一个元素:(值得注意的是,在绝大多数编程语言中,索引的起始值为0,即第一个元素位置为零)

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

python只返回该元素,不包含方括号和引号:

trek

备注:在创建列表时bicycles元素名映射了该列表的基地址,及第一个元素存储位置的开始地址,[]中括号表示在地址上加上几个列表类型的空间找到新地址。例如bicycles[0]表示在列表基地址基础上加上0个字符串长度的数值即为第1个字符串的存储地址;bicycles[2]表示在列表基地址基础上加上2个字符串长度的数值即为第3个字符串的存储地址。(字符串可能不太好理解,其长度不统一(实际上python按最长的字符串长度分配字符串列表每行的长度)可按照整数固定长度的列表进行理解。)

当使用bicycles[0]访问列表元素时,该变量即为元素数据类型,可使用该元素数据类型的方法对其进行操作。 在上述例子中该变量为字符串,则可使用title() 让元素’trek’ 的格式更整洁:

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

python返回:

Trek

备注:p[ a ],p为列表名,列表名即为指针,存储列表存储位置的基地址, p [ a ]相当于*(p+a(列表元素长度)),即基地址+a倍的列表元素长度得到的地址取该地址的数据内容。

Python为访问最后一个列表元素提供了一种特殊语法。通过将索引指定为-1 ,可让Python返回最后一个列表元素:

bicycles = ['trek', 'cannondale', 'redline', 'specialized']
print(bicycles[-1])

python返回:

specialized

3、使用列表元素

通过索引表示的列表元素是为列表元素的数据类型,可直接使用其方法,对于字符串来说可以直接进行拼接操作如下:

message = "My first bicycle was a " + bicycles[0].title() + "."
print(message)

pyhton返回:

My first bicycle was a Trek.

4、修改、添加、删除元素

修改元素可以直接使用变量赋值的方式,使用索引表明元素位置,直接赋值新值即可:

motorcycles[0] = 'ducati'
motorcycles[1] = 'dunkle'

添加元素需要使用列表方法进行添加:
append(value)方法在列表末尾进行添加;
insert(index, value)方法在任意位置进行添加;
extend(values)方法追加多个元素;

如下,创建一个空列表并添加元素,插入元素:

motorcycles = []
motorcycles.append('honda')
motorcycles.append('yamaha')
motorcycles.append('suzuki')
print(motorcycles)
motorcycles.insert(0, 'ducati')
print(motorcycles)

python返回:

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

删除元素可以使用del语句进行删除:

motorcycles = ['honda', 'yamaha', 'suzuki']
print(motorcycles)
del motorcycles[0]
print(motorcycles)

python返回:

['honda', 'yamaha', 'suzuki']
['yamaha', 'suzuki']remo

删除元素也可以使用列表方法进行删除:
pop()方法删除列表末尾元素
pop(index)方法删除对应列表元素
remove(value)方法删除列表中的对应值元素

pop()方法使用时可使用新变量接收删除的元素值:

motorcycles = ['honda', 'yamaha', 'suzuki']
print(motorcycles)
popped_motorcycle = motorcycles.pop()
print(motorcycles)
print(popped_motorcycle)

python返回:

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

pop(index)方法同样能够接收删除的元素值,但remove(value)方法不可以。

5、列表方法

sort()方法对列表进行从小到大的永久排序,会改变列表元素顺序,时间复杂度O(n logn)
sorted()方法对列表进行从小到大的临时排序,不改变列表,原列表下次引用仍为未排序状态
列表排序问题属于算法问题,了解排序算法的特征能更好的使用排序算法解决对应问题。
reverse()方法对列表中元素顺序进行翻转

对sort()方法传递reverse=True参数,即可进行倒序排序:

cars = ['bmw', 'audi', 'toyota', 'subaru'] 
cars.sort()
print(cars)
cars.sort(reverse=True)
print(cars)
['audi', 'bmw', 'subaru', 'toyota']
['toyota', 'subaru', 'bmw', 'audi']

备注:排序时按照从前到后的字母ASCII码数值进行排序。

len(list)方法可获取列表元素个数,即列表长度:

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

备注:列表索引错误是最常见的列表错误,是因为列表索引超过了列表的元素个数导致的,打印列表长度可以清楚的了解列表元素个数,修复索引错误问题。

motorcycles = ['honda', 'yamaha', 'suzuki']
print(motorcycles[3])

索引错误:

Traceback (most recent call last):
File "motorcycles.py", line 3, in <module>
print(motorcycles[3])
IndexError: list index out of range

6、列表创建的注意事项:

a = [ 1, 2, 3, 4]
b = a			#a, b指向同一个列表,若对a进行永久排序,则b同样改变
a = [ 1, 2, 3, 4]
b = a[ : ]		#a, b指向不同列表,若对a进行永久排序,则b不变
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Dunkle.T

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值