我在CSDN上学Python-6

列表操作(Python中非常重要的一个内容)

1、列表的创建与删除

# Name:      Python study
# Designer:  MilesHugh
# Time:      2023/4/7  11:18

# 列表
# -变量考研存储一个元素,而列表是一个“大容器”可以存储N多个元素,程序可以方便地对这些数据进行整体操作
# -列表相当于其他语言中的数组
a = 10
# 变量存储的是一个对象的引用
lst = ['hello', 'world', 98]
print(id(lst))
print(type(lst))
print(lst)
print('------创建列表的第一种方式,使用[]------')
lst = ['hello', 'world', 98, 'hello']
print(lst)
print(lst[0], lst[-3], lst[2])
print('------创建列表的第二种方式,使用内置函数list()------')
lst2 = list(['hello', 'world', 98])
print(lst2)
# 列表的特点:
# -列表元素按顺序有序排序
# -索引映射唯一个数据:列表索引:0、1、2、3...(...、-3、-2、-1)
# -列表可以存储重复数据
# -任意数据类型混存
# -根据需要动态分配和回收内存

2、列表的查询操作

# Name:      Python study
# Designer:  MilesHugh
# Time:      2023/4/7  12:24

# 列表的查询操作:
# 1、获取列表中指定元素的索引:index()
# 2、获取列表中的单个元素
# 3、获取列表中的多个元素
# 4、判断指定元素在列表中是否存在
# 5、列表元素的遍历
print('------获取列表中指定元素的索引------')
# -如查列表中存在N个相同元素,只返回相同元素中的第一个元素的索引
# -如果查询的元素在列表中不存在,则会抛出ValueError
# -还可以在指定的start和stop之间进行查找
lst = ['hello', 'world', 98, 'hello']
print(lst.index('hello'))
# 如果列表中有相同元素只返回列表中相同元素的第一个元素的索引
# print(lst.index('Python')) # ValueError: 'Python' is not in list
# print(lst.index('hello', 1, 3)) # 报错,hello不在第1和第3的范围内
print(lst.index('hello', 1, 4))
# 3 #hello在第3的位置
print('------获取列表中的单个元素------')
# -正向索引从0到N-1  lis[0]
# -逆向索引从-N到-1  lst[-N]
# -指定索引不存,抛出IndexError
lst = ['hello', 'world', 98, 'hello', 'world', 234]
print(lst[2])
# 获取索引为2的元素
print(lst[-3])
# 获取索引为-3的元素
# print(lst[10]) # IndexError: list index out of range
# 获取索引为10的元素
print('------获取列表中的多个元素------')
# 语法格式:列表名[start: stop: step]
lst = [10, 20, 30, 40, 50, 60, 70, 80]
print(lst[1:6:1])
# start=1,stop=6,step1
print('原列表', id(lst))
lst2=lst[1:6:1]
print('切的片段:', id(lst2))
# 切出来的列表是一个新的列表对象
print(lst[1:6])
print(lst[1:6:])
# 默认步长为1
print(lst[1:6:2])
# start=1,stop=6,step=2
print(lst[:6:2])
# stop=6,step=2,start采用默认0
print(lst[1::2])
# start=1,step=2,stop省略(包括此后的所有元素)
print('------step步长为负数的情况------')
print('原列表:', lst)
print(lst[::-1])
# 默认start=7,stop省略(包括此后的所有元素),step=-1
print(lst[7::-1])
# start=7,stop 省略 step=-1
print(lst[6:0:-2])
# start=6,stop=0,step=-2
print('------判断指定元素在列表中是否存在------')
print('p' in 'python')
# True
print('k' not in 'python')
# True
lst=[10, 20, 'python', 'hello']
print(10 in lst)
# True
print(100 in lst)
# False
print(10 not in lst)
# False
print(100 not in lst)
# True
print('------列表元素的遍历------')
for i in lst:
    print(i)
# 对列表的元素依次进行输出

3、列表元素的增、删、改操作

# Name:      Python study
# Designer:  MilesHugh
# Time:      2023/4/7  14:28

# 列表元素的增加操作
# -append():在列表的末尾添加一个元素
# -extend():在列表的末尾至少添加一个元素
# -insert():在列表的任意位置添加一个元素
# -切片:在列表的任意位置至少添加一个元素
print('------在列表的末尾添加一个元素------')
lst = [10, 20, 30]
print('添加元素之前', lst, id(lst))
lst.append(100)
print('添加元素之后', lst, id(lst))
# -不改变列表的标识id
print('------在列表的末尾一次性添加多个元素------')
lst2 = ['hello', 'world']
# lst.append(lst2):将lst2做为一个元素添加到列表的末尾
lst.extend(lst2)
print(lst)
print('------在列表任意位置上添加一个元素------')
lst.insert(2, 90)
print(lst)
print('------在列表任意位置上至少添加一个元素——切片:将部分切掉后替换------')
lst3 = [True, False, 'hello']
# 在任意的位置上添加N多个元素
lst[1:4] = lst3
print(lst)


# 列表元素的删除操作
# -remove()
# -pop()
# -切片
# -clear()
# -del
print('------remove()操作------')
lst = [10, 20, 30, 40, 50, 60, 30]
lst.remove(30)
# 从列表中移除一个元素,如果有重复元素只移第一个元素
print(lst)
# lst.remove(100) # ValueError: list.remove(x): x not in list
# 要移除的元素在列表中不存在
print('------pop()根据索引移除元素------')
lst.pop(1)
print(lst)
# lst.pop(5) #IndexError: pop index out of range
# 如果指定的索引位置不存在,将抛出异常
lst.pop()
# 如果不指定参数(索引),将删除列表中的最后一个元素
print(lst)
print('------切片操作-删除至少一个元素,将产生一个新的列表对象------')
new_list = lst[1:3]
print('原列表', lst)
print('切片后的列表', new_list)
print('------不产生新的列表对象,而是删除原列表中的内容------')
lst[1:3] = []
# 用空列表进行替代
print(lst)
print('------清除列表中的所有元素------')
lst.clear()
print(lst)
print('------del语句将列表对象删除------')
del lst
# print(lst)  #NameError: name 'lst' is not defined
# 报错了,已经将列表直接删除了


# 列表元素的修改操作
# -为指定索引的元素赋予一个新值
# -为指定的切片赋予一个新值
lst = [10, 20, 30, 40]
print('------为指定索引的元素赋予一个新值------')
lst[2] = 100
print(lst)
print('------为指定的切片赋予一个新值------')
lst[1:3] = [300, 400, 500, 600]
print(lst)

4、列表元素的排序

# Name:      Python study
# Designer:  MilesHugh
# Time:      2023/4/7  14:53

# 列表元素的排序操作
# -调用sort()方法
# -调用内置函数sorted()
print('------调用sort()方法进行列表元素排序------')
lst = [20, 40, 10, 98, 54]
print('排序前的列表', lst, id(lst))
lst.sort()
# 开始排序 ,调用列表对象的sort方法,默认升序排序
print('排序后的列表', lst, id(lst))
# 排序前后标识不变,说明是在原列表中排序
print('------sort()内指定关键字参数,将列表中的元素进行升序降序排序------')
lst.sort(reverse=True)
# 或者为:lst.sort(reverse=1)
# reverse=True表示降序排序
print(lst)
lst.sort(reverse=False)
# 或者为:lst.sort(reverse=0)
# reverse=False就是升序排序
print(lst)
print('------使用内置函数sorted()对列表进行排序,将产生一个新的列表对象------')
lst = [20, 40, 10, 98, 54]
print('原列表', lst)
new_list = sorted(lst)
# 开始排序
print(lst, id(lst))
print(new_list, id(new_list))
# 排序前后列表的标识发生变化,sorted()把原列表的元素排好序,然后放入一个新的列表内
print('------sorted()内指定关键字参数,实现列表元素的降序排序------')
desc_list1 = sorted(lst, reverse=True)
# reverse=True表示降序排序
desc_list2 = sorted(lst, reverse=False)
# reverse=False就是升序排序
print(desc_list1)
print(desc_list2)

5、列表生成式

# Name:      Python study
# Designer:  MilesHugh
# Time:      2023/4/7  15:07

# 列表生成式:生成列表的公式
# -语法格式:[i*i for i in range(1,10)]
# -i*i表示列表元素的表达式 :通常包含自定义变量
# -i自定义变量
# -range(1,10)可迭代对象
print('------列表中的元素的值为1、2、...、9的平方数------')
lst = [i*i for i in range(1, 10)]
print(lst)
print('------列表中的元素的值为2、4、6、8、10------')
lst2 = [i*2 for i in range(1, 6)]
print(lst2)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小翔很开心

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

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

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

打赏作者

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

抵扣说明:

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

余额充值