Python列表介绍

1 什么是列表

列表是一组有序的元素组成,元素本身没有限制,元素与元素之间也没有任何关系,在Python中用方括号[]表示列表

列表的特性:可变、有序

2 列表相关操作

2.1 访问单个列表元素

列表是有序的,因此可以通过列表的索引访问列表的元素,特别注意索引是从0开始的,示例如下:

names = ["张无忌", "赵敏", "周芷若"]
print(names[0])

结果如下:

2.2 访问多个列表元素————列表切片

列表切片返回包含源列表部分元素的新列表,通过索引和步长实现

切片语法是:list[start_index:end_index:step]

正值索引值是0到len(list[])-1,负值索引值是-len(list[])到-1

step缺省时第二个冒号也可以省略,但start_index和end_index缺省时,两个冒号均不能省略

返回的列表元素包含start_index,不含end_index

参数默认值:start_index默认值是0,end_index默认值是len(list[]),step默认值是1

示例如下:

names = ["张无忌", "赵敏", "周芷若"]
print(names[0:2])  # 正索引
print(names[-3:-1])  # 负索引
print(names[:2])  # start_index缺省
print(names[0:])  # end_index缺省

结果如下:

特殊用法:负数step实现列表翻转

names = ["张无忌", "赵敏", "周芷若"]
print(names[::-1])  # start_index和end_index缺省
print(names[2:0:-1])  # 无法返回元素names[0]
print(names[2::-1])  # 正值索引通过缺省end_index返回元素names[0]
print(names[-1::-1])
print(names[-1:-3:-1])

结果如下:

因为step为负值,,即返回元素的方向是反向索引(从右往左),所以对应的start_index需要大于end_index缺省

反向索引切片返回的列表不含索引为end_index的元素,使用正值索引需要返回缺省end_index参数

2.3 列表元素的变更

2.3.1 修改列表元素

列表元素的修改通过索引实现,可以一次修改过个元素,修改多个元素的语法类似切片

# 修改单个元素,元素不加方括号[]
list1 = ["张无忌", "赵敏", "周芷若"]
list1[2] = "小昭"
print(list1)

# 修改不相邻的多个元素时,修改前后的序列个数必须一致
list2 = ["a", "b", "c"]
# 也可以使用list2[0:3:2] = ["d", "e"],Python会自动对可迭代的对象做一次解析,然后赋值到对应位置
list2[0:3:2] = "de"
print(list2)

# 修改相邻的多个元素时,修改前后的序列个数可以不同,使用该方法可以变更元素数量
list3 = ["a", "b", "c"]
# 也可以是list3[3:] = "de"
list3[3:] = ["d", "e"]
print(list3)

结果如下:

2.3.2 向列表插入元素

向列表任意位置插入元素,使用list[].insert()方法

语法为:

list.insert(index, object)

将object插入到索引index位置,对应位置及之后原来的元素顺位后移,示例如下:

names = ["张无忌", "赵敏"]
names.insert(1, "小昭")
print(names)

结果如下:

向列表末尾添加元素,使用list[].append()方法

语法为:

list.append(object)

object元素被添加至原列表末尾,示例如下:

names = ["张无忌", "赵敏"]
names.append("小昭")
print(names)

结果如下:

2.3.3 删除列表元素

使用del语句删除元素

语法为:

del list[start_index, end_index, step]

删除的元素就是切片返回的元素,示例如下:

names = ["张无忌", "赵敏", "周芷若"]
del names[0:3:2]
print(names)

结果如下:

使用list.pop()方法删除元素

pop()方法删除元素后会弹回元素,在不重复抽奖等程序中常使用

语法为:

list.pop(index)

将索引为index的元素list[index]从原列表删除并返回,index缺省时,默认删除末尾元素,示例如下:

names = ["张无忌", "赵敏", "周芷若"]
name = names.pop()
print(names)
print(name)

结果如下:

使用remove()方法删除元素

remove()方法可以根据值删除元素

语法为:

list.remove(value)

该方法只会删除列表中首个值为value的元素,如果值不在列表中,则会报错,示例如下:

names = ["张无忌", "赵敏", "周芷若", "张无忌"]
names.remove("张无忌")
print(names)

结果如下,第二个张无忌并没有被删除:

hmoban主题是根据ripro二开的主题,极致后台体验,无插件,集成会员系统
自学咖网 » Python列表介绍