当前位置: 首页 > news >正文

Python:列表的定义和增删改查,推导式与嵌套

li=[1,2,'a',4]
print(li[0:3])#输出结果为[1, 2, 'a'],由此可知列表同样可以进行切片操作

同样的,除了for循环遍历取值,列表也是可迭代对象

相关操作:

添加元素append(),extend(),insert():

li=[1,2,3,4]
li.append(50)
print(li)#输出结果为[1, 2, 3, 4, 50],append为整体添加
li=[1,2,3,4]
li.extend("50")
print(li)#输出结果为[1, 2, 3, 4, '5', '0'],extend是分散添加将另外一个类型中的元素逐一添加
li=[1,2,3,4]
li.insert(3,"50")
print(li)#输出结果为[1, 2, 3, '50', 4]#insert是指定位置插入元素,如果指定位置有元素当前位置的元素及以后的就会默认往后移代码中的3代表插入位置

修改元素直接通过下标就可以修改:

li=[1,2,3,4]
li[2]='a'
print(li)#输出结果为[1, 2, 'a', 4],在此不过多演示

查找元素in,not in,index,count:

li=[1,2,3,4]
print(1 in li)#返回结果为True,not in同理,在前面讲过不做过多演示

小例子:用户输入昵称判断是否存在:

代码如下:

name_list=['li','hai','lu']
name=input("请输入昵称:")
while True:#死循环,用户输入重复名字的时候可以继续操作
     if name in name_list:
         print(f"昵称{name}已存在!")
     else:
         print(f"昵称{name}已被使用")
         name_list.append(name)
         print(name_list)
     break#终止循环

index:返回指定数据所在位置的下标,如果查找不到就会报错

count:统计指定数据在当前列表中出现的次数,跟字符串中的用法相同

删除元素:del

name_list=['li','hai','lu']
del name_list[1]
print(name_list)#删除列表
name_list=['li','hai','lu']
del name_list[1]
print(name_list)#根据下标删除数据

pop:删除指定下标的数据,python3版本默认删除最后一个元素

li=['li','hai','lu']
li.pop()
print(li)#输出结果为['li', 'hai']
li=['li','hai','lu']
li.pop(1)
print(li)#只能根据下标删除,不能根据元素删除,且下标不能超出范围

remove:根据元素的值进行删除

li=['li','hai','lu']
li.remove('li')
print(li)##输出结果为['hai', 'lu']#如果没有可以删除的值会报错,有元素重复时默认删除最开始出现的指定元素,不会全部删除

排序:

sort:将列表按特定顺序重新排列,默认从小到大

li=['li','hai','lu']
li.sort()
print(li)#输出结果为['hai', 'li', 'lu']

reverse:将列表倒序:

li=['li','hai','lu']
li.reverse()
print(li)#输出结果为['lu', 'hai', 'li']#两个一起写可以实现从大到小排序

列表推导式:

in后面不仅可以放列表还可以放range函数,可迭代对象

例如:
li=['li','hai','lu']
[print(i) for i in li]
li=[]#定义一个空列表
for i in range(1,6):
    li.append(i)
print(li)#输出结果为[1,2,3,4,5]

比较麻烦,如果用列表推导式写如下:

li=[]
[li.append(i) for i in range(1,6)]
print(li)#其输出结果一致

第二种写法则是增加了一些条件:

如果我只想把奇数放里边:

li=[]
[li.append(i) for i in range(1,11) if i%2==1]
print(li)输出结果为[1,3,5,7,9]

列表嵌套:

含义:一个列表里边又有一个列表,里边的列表算作一个整体

相关文章:

  • 蓝桥杯单片机第16届4T模拟赛三思路讲解
  • 计算机毕业设计SpringBoot+Vue.js汽车资讯网站(源码+文档+PPT+讲解)
  • Java支持多继承么,为什么?
  • 4-3自定义加载器,并添加功能
  • 本地部署大模型
  • 《动手学习深度学习》的笔记,将会持续更新。
  • vue3:三项目增加404页面
  • Mysql 语法再巩固
  • 接口自动化测试框架(pytest+allure+aiohttp+用例自动生成)
  • 香港大学deep-research开源项目
  • (动态规划 最大(连续)子数组和)leetcode 53
  • Elasticsearch 数据量大时如何优化查询性能?
  • Python正则
  • [M数据结构] lc2353. 设计食物评分系统(数据结构+set 平衡树+懒删除堆)
  • 达梦数据库如何查看当前锁表和如何解决锁表问题
  • 企业access_token,与用户access_token区别,获取方式,如何获取用户信息
  • 释放你的IDE潜能:Code::Blocks 插件创意开发深度指南
  • C++—类与对象(下)
  • C#上位机--三元运算符
  • 【分库分表】基于mysql+shardingSphere的分库分表技术
  • 山西省建设厅政务中心网站/如何开展网络营销活动
  • 电池外贸一般在哪些网站做/跨境电商平台有哪些
  • 网站 用什么语言/360网站推广客服电话
  • 百度做网站推广多少钱/怎么免费创建网站
  • 武汉手机微信网站建设/windows优化大师官方下载
  • 怎样做网站的快捷方式/十大广告公司排名