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

Python数据类型:序列(列表list、元组tuple)

一:序列

序列sequence是多个值组成的一个整体,Python中的序列包含列表list元组tuple字符串str等。

二:列表list

字符串转列表list()

['a', 'b', 'c']
print(list('abc'))

正负索引

  • 正索引:从0开始,方向从左到右。
  • 负索引:从-1开始,方向从右到左。

在这里插入图片描述

chars = ['a', 'b', 'c', 'd', 'e', 'f']
# nums[0]=a, nums[-1]=f
print(f"chars[0]={nums[0]}, nums[-1]={chars[-1]}")

切片

[开始索引:结束索引:步长]

  • 开始索引: 可以是正索引也可以是负索引,如果省略开始索引默认从头开始。
  • 结束索引:可以是正索引也可以是负索引,如果省略结束索引默认到列表的结尾,不包含结束索引元素
  • 步长:默认为1,大于1表示:包含第一个元素,然后每隔n -1 获取指定的元素。

切片获取

chars = ['a', 'b', 'c', 'd', 'e', 'f']
# ['c', 'd', 'e', 'f']
print(chars[2:])
# ['a', 'b'] 不包含index=2的元素
print(chars[:2]) 
# ['e', 'f'] 负索引,从右到左
print(chars[-2:])


# ['b', 'c']
print(chars[1:3])
# ['d', 'e']
print(chars[-3:-1])
# ['b', 'c']
print(chars[1:-3])


# ['b', 'c', 'd', 'e']
print(chars[1:5:1])
# ['b', 'd'] 从[1:5]获取的结果开始,每隔步长-1个获取一个元素
print(chars[1:5:2])
# ['a', 'c', 'e']
print(chars[::2])
# ['f', 'd']
print(chars[-1:-5:-2])

切片修改元素

nums = [1, 2, 3, 4, 5]
nums[1:4] = [22, 33, 44]
# [1, 22, 33, 44, 5]
print(nums)

切片添加元素

切片赋值时当开始索引等于结束索引时,此时是在该索引位置添加多个索引元素

nums = [1, 5]
# 5
print(nums[1])
# []:开始包含index=1,结束又不包含index=1,所以为[]
print(nums[1:1])
nums[1:1] = [2, 3, 4]
# [1, 2, 3, 4, 5]
print(nums)

切片删除元素

nums = [1, 2, 3, 4, 5]
nums[1:4] = []
# [1, 5]
print(nums)

# 相当于del[1:4]
del nums[1:4]


nums = [1, 2, 3, 4, 5]
nums[1:4] = ['b', 'c']
# [1, 'b', 'c', 5]
print(nums)

序列相加 +

# [1, 2, 3, 'a', 'b', 'c']
print([1, 2, 3] + ['a', 'b', 'c'])

序列相乘 *

序列相乘表示将列表中的所有元素追加到列表中几次。

# [1, 2, 3, 1, 2, 3, 1, 2, 3]
print([1, 2, 3] * 3)

# 初始化3个空元素
# [None, None, None]
print([None] * 3)

成员资格 in

print(1 in [1, 'hello', 2.0, True])

长度len、最大值max、最小值min

nums = [0, 1, 2, 3, 4, 5]
# 6, 5, 0
print(f'{len(nums)}, {max(nums)}, {min(nums)}')

删除元素

chars = ['a', 'b', 'c', 'd', 'e']
# 根据索引删除
del chars[0]

# 根据元素值删除
chars.remove('a')

# 根据索引删除,并返回删除的元素,pop=a
pop = chars.pop(0)

# 清空列表 chars=[]
chars.clear()

元素拼接成字符串

print(",".join(['a', 'b', 'c']))

三:元组tuple

元组tuple和列表list最大的不同是元组不可以修改,其它的和列表没什么区别。

相关文章:

  • [ vulhub漏洞复现篇 ] ThinkPHP 5.0.23-Rce
  • 算法分析与设计:10 大排序算法大汇总(Java)
  • 【斯坦福大学公开课CS224W——图机器学习】六、图神经网络1:GNN模型
  • Google Earth Engine(GEE)——GEE错误结果没有变化?
  • 《Improved Techniques for Training GANs》-论文阅读笔记
  • 十一假期,分享几个好玩儿的GitHub项目
  • AcWing 第71场周赛
  • Redis实战 - 02 Redis 保存短信验证码实现用户注册
  • AcWing——第 71 场周赛
  • 利用Vulhub复现log4j漏洞CVE-2021-44228
  • 【学生网页设计作业源码】基于html+css保护海豚主题网页设计与制作(7页)
  • 频率响应说明
  • C++教程系列之-01-C++概述与NOIP案例
  • Network 之十四 email 通信架构、Postfix 部署详解
  • Tableau8——数据操作
  • 《网管员必读——网络组建》(第2版)电子课件下载
  • Eureka 2.0 开源流产,真的对你影响很大吗?
  • JavaScript 基础知识 - 入门篇(一)
  • Js基础——数据类型之Null和Undefined
  • Laravel核心解读--Facades
  • Logstash 参考指南(目录)
  • Netty源码解析1-Buffer
  • node-glob通配符
  • redis学习笔记(三):列表、集合、有序集合
  • session共享问题解决方案
  • SQLServer之创建数据库快照
  • 分享自己折腾多时的一套 vue 组件 --we-vue
  • 力扣(LeetCode)22
  • 嵌入式文件系统
  • 强力优化Rancher k8s中国区的使用体验
  • 如何用vue打造一个移动端音乐播放器
  • 入口文件开始,分析Vue源码实现
  • 新年再起“裁员潮”,“钢铁侠”马斯克要一举裁掉SpaceX 600余名员工 ...
  • ​3ds Max插件CG MAGIC图形板块为您提升线条效率!
  • #define用法
  • (11)MSP430F5529 定时器B
  • (13):Silverlight 2 数据与通信之WebRequest
  • (二)windows配置JDK环境
  • (非本人原创)我们工作到底是为了什么?​——HP大中华区总裁孙振耀退休感言(r4笔记第60天)...
  • (附源码)ssm基于web技术的医务志愿者管理系统 毕业设计 100910
  • (附源码)计算机毕业设计ssm电影分享网站
  • (个人笔记质量不佳)SQL 左连接、右连接、内连接的区别
  • (十六)一篇文章学会Java的常用API
  • (转)LINQ之路
  • ***通过什么方式***网吧
  • .net core 调用c dll_用C++生成一个简单的DLL文件VS2008
  • .Net Core和.Net Standard直观理解
  • .NET Reactor简单使用教程
  • .net6使用Sejil可视化日志
  • .NET开发者必备的11款免费工具
  • [ Linux Audio 篇 ] 音频开发入门基础知识
  • [2017][note]基于空间交叉相位调制的两个连续波在few layer铋Bi中的全光switch——
  • [3300万人的聊天室] 作为产品的上游公司该如何?
  • [Big Data - Kafka] kafka学习笔记:知识点整理
  • [C++]unordered系列关联式容器