Python基础--列表简介

133 阅读2分钟

1. 列表简介

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

1.1 访问列表元素

列表是有序集合,因此将元素位置和索引告诉Python即可访问任意位置的元素

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

上述语法提到了访问列表元素的语法,返回值只有该元素,而没有方括号和引号。

1.2 索引从0开始而不是从1开始

列表在内存中的存储空间是连续的,因此在创建列表时,首先向操作系统申请一块固定大小的内存空间,用来存储每个列表元素。基于这种特性,列表可以实现随机访问(根据下标随机访问元素)。但是这也导致插入、删除数据时为保证连续性,就需要做大量的数据搬移工作。

从列表存储的内存模型上来看,“下标”代表的应该是“偏移”。那么bicycles[0]就是偏移量为0的位置,也就是首地址。因此计算bicycles[k]的内存地址公式为:

a[k]_address = base_address + k * type_size

而如果使用从1开始计数,那计算数组元素a[k]的地址为

a[k]_address = base_address + (k-1) * type_size

如果从1开始,那么每次随机访问都多了一次减法运算,对于CPU来说,就多了一次减法指令。

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

2.1 添加元素

  1. 在列表末尾添加元素。bicycles.append('honda')
  2. 在列表任意位置插入元素。bicycles.insert(1,'ducati')

2.2 删除元素

  1. 根据索引位置删除元素。del bicycles[0]
  2. 删除末尾元素并使用该值。print(bicycles.pop())
  3. 使用并删除列表中任意位置的值。print(bicycles.pop(1))
  4. 根据值删除元素。bicycles.remove('trek')

3. 组织列表

3.1 使用sort() 进行永久性排序

cars = ['bmw', 'audi', 'tpyato']
cars.sort()
print(cars)

其结果为

['audi', 'bmw','toyato']

使用cars.sort(reverse=True)对列表的排序结果进行翻转。

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

能够按照特定的顺序排列元素,但是列表中元素顺序并未变。

3.3 使用len()函数确定列表的长度

len(cars)能够快速确定列表的长度

4. 使用列表时避免索引错误

  1. 使用超出元素长度的下标,将导致索引错误。
  2. 访问cars[-1]访问的永远是最后一个列表元素。