【Python基础】列表(5700字)

因上努力

个人主页:丷从心·

系列专栏:Python基础

学习指南:Python学习指南

果上随缘


什么是列表

  • 如下定义的变量last_names的数据类型是列表
last_names = ['赵', '钱', '孙', '李', '周', '吴']

print(last_names)
['赵', '钱', '孙', '李', '周', '吴']
  • 通过type()函数可以查看变量last_names的数据类型
last_names = ['赵', '钱', '孙', '李', '周', '吴']

print(type(last_names))
<class 'list'>

索引

  • 索引就是标记内存空间地址的一个数字,也可以称为下标
  • 对于列表last_names = ['赵', '钱', '孙', '李', '周', '吴'],索引从 0 0 0开始,在内存中的存储方式如下
索引0索引1索引2索引3索引4索引5
  • 索引也可以为负数,对于列表last_names = ['赵', '钱', '孙', '李', '周', '吴'],索引为负数时的情况如下
索引-1索引-2索引-3索引-4索引-5索引-6
示例
  • 通过使用[]加上索引的方式获取对应索引处的数据
last_names = ['赵', '钱', '孙', '李', '周', '吴']

print(last_names[0])
print(last_names[1])
print(last_names[2])
赵
钱
孙
last_names = ['赵', '钱', '孙', '李', '周', '吴']

print(last_names[-1])
print(last_names[-2])
print(last_names[-3])
吴
周
李
索引越界
  • 索引对应内存地址,是有范围的,对于列表last_names = ['赵', '钱', '孙', '李', '周', '吴'],其索引范围为 0 0 0 5 5 5,如果使用索引“ 6 6 6”会发生索引越界,产生异常
last_names = ['赵', '钱', '孙', '李', '周', '吴']

print(last_names[6])
Traceback (most recent call last):
  File "C:/Users/FOLLOW_MY_HEART/Desktop/Python Basics/【Python基础】列表/test.py", line 3, in <module>
    print(last_names[6])
IndexError: list index out of range

切片

  • 切片就是截取操作对象中一部分数据的操作,例如对于列表last_names = ['赵', '钱', '孙', '李', '周', '吴'],可以通过切片获取到子列表['赵', '钱', '孙']
语法
list_object[起始索引:结束索引:步长]
  • 选取的数据范围从“起始索引”开始,到“结束索引”结束,但不包含结束索引处的数据,即数据只取到结束索引的前一位
  • 步长表示选取数据的间隔,不使用步长时默认步长为 1 1 1
示例
步长为正
  • 选取索引 0 0 0 2 2 2包含的元素(不包含索引 3 3 3处的元素)
last_names = ['赵', '钱', '孙', '李', '周', '吴']

print(last_names[0:3])
['赵', '钱', '孙']
  • 如果“起始索引”为空则表示起始索引为 0 0 0
last_names = ['赵', '钱', '孙', '李', '周', '吴']

print(last_names[:3])
['赵', '钱', '孙']
  • 如果“结束索引”为空则表示从起始索引开始一直取到列表末尾
last_names = ['赵', '钱', '孙', '李', '周', '吴']

print(last_names[3:])
['李', '周', '吴']
  • 选取索引 1 1 1到最后一个元素之前的元素(通过负数索引的方式)
last_names = ['赵', '钱', '孙', '李', '周', '吴']

print(last_names[1:-1])
['钱', '孙', '李', '周']
  • 2 2 2为步长从列表开头取到列表末尾
last_names = ['赵', '钱', '孙', '李', '周', '吴']

print(last_names[::2])
['赵', '孙', '周']
步长为负
  • 如果步长为负,表示从右向左选取数据,此时“起始索引”应大于“结束索引”
last_names = ['赵', '钱', '孙', '李', '周', '吴']

print(last_names[3:0:-1])
['李', '孙', '钱']
    • 此时从右向左取到的是索引 3 3 3到索引 1 1 1包含的元素,不包含索引 0 0 0处的元素
  • 从列表末尾取到列表开头的元素(列表倒序)

last_names = ['赵', '钱', '孙', '李', '周', '吴']

print(last_names[::-1])
['吴', '周', '李', '孙', '钱', '赵']

遍历列表

什么是遍历
  • 遍历就是通过循环的方式从stringlisttupledictset等序列数据类型中依次获取元素,这个过程称为遍历
for循环遍历
last_names = ['赵', '钱', '孙', '李', '周', '吴']

for last_name in last_names:
    print(last_name)
赵
钱
孙
李
周
吴
while循环遍历
last_names = ['赵', '钱', '孙', '李', '周', '吴']

i = 0
while i < len(last_names):
    print(last_names[i])

    i += 1
赵
钱
孙
李
周
吴
  • len()方法用于获取列表的长度

列表操作

增加元素
append()方法
list_object.append(element)
  • append()方法用于向列表末尾追加元素
last_names = ['赵', '钱', '孙']
print(last_names)

last_names.append('李')
print(last_names)
['赵', '钱', '孙']
['赵', '钱', '孙', '李']
insert()方法
list_object.insert(index, element)
  • insert()方法用于向列表指定索引位置插入元素
number_list = [1, 2, 3]

number_list.insert(1, 0)

print(number_list)
[1, 0, 2, 3]
  • number_list.insert(1, 0)表示向列表number_list的索引 1 1 1处插入元素 0 0 0
extend()方法
list_object.extend(list_obj)
  • extend()方法用于将另一个列表的元素逐一向列表末尾进行追加
last_names_1 = ['赵', '钱', '孙']
last_names_2 = ['李', '周', '吴']

last_names_1.extend(last_names_2)

print(last_names_1)
['赵', '钱', '孙', '李', '周', '吴']
修改元素
list_object[index] = new_element
  • 修改列表元素只需通过索引确定需要修改的元素,然后对该元素重新赋值
number_list = [1, 2, 3]

number_list[0] = 0

print(number_list)
[0, 2, 3]
查询元素
in
  • in用于查询列表中是否存在指定元素,如果存在那么结果为True,否则结果为False
number_list = [1, 2, 3]

print(0 in number_list)
False
not in
  • not in用于查询列表中是否不存在指定元素,如果不存在那么结果为True,否则结果为False
number_list = [1, 2, 3]

print(0 not in number_list)
True
count()方法
list_object.count(element)
  • count()方法用于查询指定元素在列表中出现的次数
number_list = [1, 2, 3, 6, 6, 6]

times = number_list.count(6)

print(times)
3
删除元素
del
del list_object[index]
  • del用于删除列表指定索引处的元素
number_list = [1, 2, 3]

del number_list[0]

print(number_list)
[2, 3]
pop()方法
list_object.pop(index)
  • pop()方法用于删除列表指定索引处的元素,默认情况下删除列表的最后一个元素,返回值为被删除的元素
number_list = [1, 2, 3]

popped_element = number_list.pop()  # 默认情况下删除列表的最后一个元素, popped_element 用于接收 pop() 方法的返回值
print(popped_element)
print(number_list)

popped_element = number_list.pop(0)
print(popped_element)
print(number_list)
3
[1, 2]
1
[2]
remove()方法
list_object.remove(element)
  • remove()方法用于删除列表指定元素值的元素
number_list = [1, 2, 3]

number_list.remove(1)

print(number_list)
[2, 3]
数据排序
sort()方法
list_object.sort(reverse=False)
  • sort()方法用于将列表元素进行排序,默认情况下参数reverse=False表示进行升序排序,如果reverse=True则表示进行降序排序
number_list = [2, 1, 4, 3, 6, 5]

number_list.sort()

print(number_list)
[1, 2, 3, 4, 5, 6]
number_list = [2, 1, 4, 3, 6, 5]

number_list.sort(reverse=True)

print(number_list)
[6, 5, 4, 3, 2, 1]
reverse()方法
list_object.reverse()
  • reverse()方法用于将列表倒序
number_list = [2, 1, 4, 3, 6, 5]

number_list.reverse()

print(number_list)
[5, 6, 3, 4, 1, 2]

  • 11
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值