第4章 序列的应用

python的数据类型分为:空类型、布尔类型、数字类型、字节类型、字符串类型、元组类型、列表类型、字典类型、集合类型

在python中序列是一块用于存放多个值的连续内存空间。

python内置了5种序列分别是元组、列表、字典、集合、字符串

本章将介绍元组、列表、字典、集合四种序列类型,字符串将在第5章介绍。

4.1 序列

序列类型支持索引、切片、相加、相乘、判断;集合和字典不支持索引、切片、相加、相乘

# 字典不支持索引、切片、相加、相乘
dict1 = {"year":2020,"month":06,"day":21}
dict2 = {"week":"sunday"}
# 索引
print(dict1[0])
KeyError: 0
# 切片
print(dict1[1:])
TypeError: unhashable type: 'slice'
# 相加
print(dict1 + dict2)
TypeError: unsupported operand type(s) for +: 'dict' and 'dict'
# 相乘
print(dict1 * dict2)
TypeError: unsupported operand type(s) for *: 'dict' and 'dict'

1、索引

序列中每一个元素都有一个编号,称为索引。正序下标从0开始,逆序下标从-1开始。

sname[下标]
# 定义列表
list1 = ["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"]
print(list1[0])
print(list1[-1])
# 定义元组
tuple1 = ("Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday")
print(tuple1[0])
print(tuple1[-1])

2、切片

切片可以访问一定范围内的元素,产生一个新的序列。

sname[start:end:step:]
参数说明:
sname:表示序列的名称
start:表示切片的开始位置
end:表示切片的截止位置
step:表示切片的步长
# 定义列表
list1 = ["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"]
print(list1[0:7:1])
print(list1[0:7:2])
['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']
['Monday', 'Wednesday', 'Friday', 'Sunday']
# 定义元组
tuple1 = ("Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday")
print(tuple1[0:7:1])
print(tuple1[::-1])
('Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday')
('Sunday', 'Saturday', 'Friday', 'Thursday', 'Wednesday', 'Tuesday', 'Monday')

3、相加

支持两种相同类型的序列进行相加(连接操作),序列中的元素类型可以不同,相加的结果中不会去除重复的元素。

list1 = ["Monday","Tuesday","Wednesday","Thursday","Friday"]
list2 = ["Saturday","Sunday"]
print(list1+list2)
['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']

4、相乘

使用数字n乘以一个序列会生成新的序列,内容为原来序列被重复n次的结果。

emptylist = [None]*5
print(emptylist)
[None, None, None, None, None]

5、检查某个元素是否是序列的成员

value in sequence
参数说明
value表示要检查的元素,
sequence表示指定的序列

返回结果是布尔值:True、False

# 定义列表
countrylist = ["中国","美国","日本"]
print("中国" in countrylist)
# 定义字典
countrydict = {"中国": "china", "美国": "American", "日本": "Japan"}
print("中国" in countrydict)
print("china" in countrydict.values())
True
True
print(countrydict.values())
dict_values(['china', 'American', 'Japan'])
print(countrydict.keys())
dict_keys(['中国', '美国', '日本'])
print(countrydict.items())
dict_items([('中国', 'china'), ('美国', 'American'), ('日本', 'Japan')])

6、计算序列的长度、最大值、最小值

内置函数 功能
len() 长度
max() 最大值
min() 最小值
list() 将序列转换为列表
str() 将序列转换为字符串
sum() 计算元素和
sorted() 对元素进行排序
reversed() 反向序列中的元素

敬请关注个人微信公众号:测试工匠麻辣烫

Python3笔记016 - 4.1 序列的更多相关文章

  1. (2)Python3笔记 数据类型之"组"(序列) 与 集合

    一. list [ 列表 ] ---- 任意数据类型的有序排列 1. list 操作类似 str操作 (参考上一节字符串操作) [1,2,3,4] [1,2,'a', True, [2,'b']]   ...

  2. python3笔记目录大纲汇总

    篇一.python3基础知识和语句 python3笔记一:python基础知识 python3笔记二:进制转换与原码反码补码 python3笔记三:运算符与表达式 python3笔记四:if语句 py ...

  3. STL源码剖析读书笔记--第四章--序列式容器

    1.什么是序列式容器?什么是关联式容器? 书上给出的解释是,序列式容器中的元素是可序的(可理解为可以按序索引,不管这个索引是像数组一样的随机索引,还是像链表一样的顺序索引),但是元素值在索引顺序的方向 ...

  4. 小甲鱼Python3笔记

    000-愉快的开始 入门容易,学习难,代码量少. 跨平台: Windows, Mac OS, Linux, UNIX. 应用领域: 操作系统 WEB 3D动画 企业应用 云计算等等. 001-我和Py ...

  5. DeepLearning.ai学习笔记(五)序列模型 -- week1 循环序列模型

    一.为什么选择序列模型 序列模型可以用于很多领域,如语音识别,撰写文章等等.总之很多优点... 二.数学符号 为了后面方便说明,先将会用到的数学符号进行介绍. 以下图为例,假如我们需要定位一句话中人名 ...

  6. DeepLearning.ai学习笔记(五)序列模型 -- week2 序列模型和注意力机制

    一.基础模型 假设要翻译下面这句话: "简将要在9月访问中国" 正确的翻译结果应该是: "Jane is visiting China in September" ...

  7. Python3笔记——常用技术点汇总

    目录 · 概况 · 安装 · 基础 · 基础语法 · 数据类型 · 变量 · 常量 · 字符编码 · 字符串格式化 · list · tuple · dict · set · if语句 · for语句 ...

  8. Python3 笔记

    Ubuntu18.04 Python3环境 默认python3已经安装了, 可能是安装其他应用的时候因为依赖关系安装的. 安装pip3, 先sudo apt update 一下, apt-cache ...

  9. python3笔记

    python3 Python3 基本数据类型 Python 中有六个标准的数据类型: Numbers(数字) Python可以同时为多个变量赋值,如a, b = 1, 2. 一个变量可以通过赋值指向不 ...

随机推荐

  1. Java实现 LeetCode 162 寻找峰值

    162. 寻找峰值 峰值元素是指其值大于左右相邻值的元素. 给定一个输入数组 nums,其中 nums[i] ≠ nums[i+1],找到峰值元素并返回其索引. 数组可能包含多个峰值,在这种情况下,返 ...

  2. Android中如何使用多选对话框

    final String [] ss={"A","B","C","D","E"}; boolean ...

  3. (四)SQLMap之Tamper篡改脚本的类型、作用、适用场景

    目录结构 一.SQLMap中tamper的简介 1.tamper的作用 2.tamper用法 二.适配不同数据库类型的测试tamper 三.SQLMap中tamper篡改脚本的功能解释 一.SQLMa ...

  4. CentOS8.1操作系下使用通用二进制包安装MySQL8.0(实践整理自MySQL官方)

    写在前的的话: 在IT技术日新月异的今天,老司机也可能在看似熟悉的道路上翻车,甚至是大型翻车现场!自己一个人开车过去翻个车不可怕,可怕的是带着整个团队甚至是整个公司一起翻车山崖下,解决办法就是:新出现 ...

  5. linux下gdb调试方法与技巧整理

    参考博客:  https://blog.csdn.net/niyaozuozuihao/article/details/91802994 1.运行命令run:简记为 r ,其作用是运行程序,当遇到断点 ...

  6. (一)linux三剑客之grep

    给自己提出以下6个问题,看自己是否真正掌握了grep [1] grep 是什么? [2] grep 有什么作用 ? [4] grep 常用于何处 ? [5] grep 的基本用法 ? [6] grep ...

  7. kibana的Dev Tool中如何对es进行增删改查

    kinaba Dev Tool中对es(elasticSearch)进行增删改查 一.查询操作 查询语句基本语法 以下语句类似于mysql的: select * from  xxx.yyy.topic ...

  8. 小程序-图片/文件本地缓存,减少CDN流量消耗

    写在前面 小程序网络图片读取: 在读取OSS图片CDN分发时流量大量消耗,导致资金费用增加. 网络图片比较大时,图片加载缓慢. 为了尽量减少上面两个问题,所以对已读的图片进行缓存处理,减少多次访问不必 ...

  9. loadrunner安装负载机

    1,安装docker 2,下载最新版本的load_generator镜像,命令如下: docker pull hpsoftware/load_generator 3,load_generator镜像实 ...

  10. Java容器相关知识点整理

    结合一些文章阅读源码后整理的Java容器常见知识点.对于一些代码细节,本文不展开来讲,有兴趣可以自行阅读参考文献. 1. 思维导图 各个容器的知识点比较分散,没有在思维导图上体现,因此看上去右半部分很 ...