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

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]

列表嵌套:

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


http://www.kler.cn/a/567648.html

相关文章:

  • 无服务边缘融合架构:重新定义云原生应用边界
  • 纯电动商用车核心性能评价方法实现
  • DeepSeek、Grok 和 ChatGPT 对比分析:从技术与应用场景的角度深入探讨
  • C++ 的编译和链接
  • 数据库 复习
  • selenium如何实现,开启浏览器的开发者工具模式
  • Flutter系列教程之(8)——CheckBox多选框及动态更改多选框
  • 基于Kerberos认证对接华为云Elasticsearch
  • 筑牢安全防线:工商业场所燃气泄漏防护新方案
  • 【Framework系列之Client】DataManager介绍
  • 【LeetCode】739.每日温度
  • 算法实战练习
  • 小红书湖仓架构的跃迁之路
  • 在日常工作中,有一块新磁盘,如何扩容到vm中,具体命令是什么?
  • Python----数据分析(Numpy:安装,数组创建,切片和索引,数组的属性,数据类型,数组形状,数组的运算,基本函数)
  • Spring Framework测试工具MockMvc介绍
  • 使用UA-SPEECH和TORGO数据库验证自动构音障碍语音分类方法
  • Unity3D仿星露谷物语开发30之保存场景状态
  • Compose 手势处理,增进交互体验
  • Python实现GO鹅优化算法优化BP神经网络回归模型项目实战