【Python学习(七)——序列、列表、元组、range、字符串、字典、集合、可变类型不可变类型】
Python学习(七)——序列、列表、元组、range、字符串、字典、集合、可变类型&不可变类型
本文介绍了序列、列表、元组、range、字符串、字典、集合、可变类型&不可变类型,仅作为本人学习时记录,感兴趣的初学者可以一起看看,欢迎评论区讨论,一起加油鸭~~~
心中默念:Python 简单好学!!!
(有其他编程语言基础,所以记录的可能对初步接触编程的同学不太友好,有问题欢迎留言)
序列
在python中,有这样一些类型,它们的成员是有序排列的,并且可以通过下标访问成员,这些类型称之为序列。
包括:列表、range、元组和字符串。
序列的通用操作
- len(item):计算容器中元素个数
- del(item):删除变量(del有两种方式)
- max(item):返回容器中元素最大值(如果是字典,只针对key比较)
- min(item):返回容器中元素最小值(如果是字典,只针对key比较)
- 切片:0123456789[::-2]---->97531(支持的数据类型:字符串、列表、元组)
- +:合并(字符串、列表、元组)
- *:重复(字符串、列表、元组)
- in:元素是否存在(字符串、列表、元组、字典)
- not in:元素是否不存在(字符串、列表、元组、字典)
-
= == < <=:元素比较(字符串、列表、元组)
列表
定义
- List(列表)是Python中使用最频繁的数据类型,在其他语言中通常叫做数组
- 专门用于存储一串信息
- 列表用==[ ]定义,数据之间使用,==分隔
- 列表的索引从0开始
- 索引就是数据在列表中的位置编号,索引又可以被称为下标
- 注意:从列表中取值时,如果超出索引范围,程序会报错
创建列表
语法:列表名=[元素1,元素2,…]
示例代码
# 列表的创建
list1 = [] #空列表
print(list1)
print(type(list1))
list2 = [1,2,3,False,True,'hello']
print(list2)
list3 = list() # 类型转换:把参数转换为列表
print(list3)
list3 = list('1234567') # 类型转换:str-->list
print(list3)# 列表的索引
print(list3[5])# 列表的切片
print(list3[2:6:2])#列表的加法和乘法
print(list3 + list2)
print(list3 * 3)# 列表的成员运算
print('1' in list3)
print('1' in [1,2,3,4])
print([1,2,3,4] < [2,3])# 内置函数 函数名()
print(len(list3)) # 求元素个数
print(max(list3)) # 求元素的最大值
print(min(list3)) # 求元素的最小值
# del list3 # 删除变量
# print(list3)
print('-' * 30)# 列表的遍历
for i in list2:print(i)
for i,j in enumerate(list2): # 枚举print(i,j)for i in range(len(list2)):print(i,list2[i])# 列表的常用方法method 变量.方法名()
# 添加元素
list3.append('666')
print(list3)
# 添加列表
list3.extend([1,2,3])
print(list3)
# 插入元素
list3.insert(2,'hello')
print(list3)
# 根据索引删除元素
list3.pop(3)
print(list3)
# 根据元素删除
list3.remove('7')
print(list3)
list3.append('hello')
print(list3)
list3.remove('hello')
print(list3)
# 清空列表
list3.clear()
print(list3)# 计算若干个人的平均年龄
age = [10,20,30,40,23,45]
# 直接求和sum()
print(sum(age)/len(age))
total = 0
for i in age:total += i
print(total / len(age))
元组
定义
- Tuple(元组)与列表类似,不同之处在于元组的元素不能修改
- 元组表示多个元素组成的序列
- 用于存储一串信息,数据之间使用,分隔
- 元组用()定义
示例代码
# 元组的创建
tuple1 = (1,2,3,True,'hello')
print(tuple1)
print(type(tuple1))
list1 = [1]
print(list1)
# 元组里只有一个元素时,加一个逗号
tuple2 = (1,) # ()除了定义元组,还是数学中优先运算符号
print(tuple2)
print(type(tuple2))
tuple3 = tuple() # tuple():类型转换
print(tuple3)
print(type(tuple3))
tuple4 = ()
print(tuple4)
print(type(tuple4))
tuple5 = tuple('hello') # str-->tuple
print(tuple5)
tuple6 = tuple([1,2,3,4]) # list-->tuple
print(tuple6)
list1 = list(tuple6) # tuple-->list
print(list1)
str1 = str(tuple6) # tuple-->str
print(str1)
print(type(str1))
print(str1[2])# 序列的通用操作
print('-'*30)
# 索引
print(tuple1[-1])
# 切片
print(tuple1[::-1])
# len
print(len(tuple1))
print(max(tuple6),min(tuple6))
# del
del tuple5
# print(tuple5)
# +
print(tuple1 + tuple6)
# *
print(tuple1 * 3)
# in
print(1 in tuple1)# 元组的常用方法
a = tuple1.count('hello') # 计数
print(a)
print(tuple1)
a = tuple1.index(2)
print(a)# 元组的遍历
print('-' * 30)
for i in tuple1:print(i)for index,value in enumerate(tuple1):print(index, value)for i in range(len(tuple1)):print(i, tuple1[i])
range
定义
- 系统提供的内建函数 range(start,end,[step=1]),生成一个等差序列[start,end]
- 注意序列属于不可变序列,不支持元素修改,不支持 + 和 * 操作
- range一般用于for-in循环遍历
- 原型:range([start,] stop [,step])
- 功能:生成列表
- 参数:
- start:表示列表起始值,包含,默认为0
- stop:表示列表结束值,但是不包含
- step:步长,默认为1
示例代码
# range(start, end, step)
print(list(range(10))) # end
print(list(range(2,10))) # start, end
print(list(range(2,10,3))) # start, end, stepfor i in range(3):print('hello')# 高斯求和
total = 0
for i in range(1000, 10001, 2):total += i
print(total)# 水仙花数:三位数,每一位数字的立方和 = 三位数本身
# 123 1^3+2^3+3^3 = 123
for i in range(100, 1000):a = i % 10 # 个位b = i % 100 // 10 # 十位 i // 10 % 10c = i // 100 # 百位if a ** 3 + b ** 3 + c ** 3 == i:print(i)# 使用字符串索引的方式
for i in range(100, 1000):t = str(i)a = int(t[2])b = int(t[1])c = int(t[0])if a ** 3 + b ** 3 + c ** 3 == i:print(i)
字符串
定义
- 字符串就是一串字符,是编程语言中表示文本的数据类型
- 在Python中可以使用一对双引号或者一对单引号定义一个字符串
- 字符串是以单引号或者双引号括起来的任意文本,也可以是以三引号引起来的任意文本
示例代码
s1 = 'hello world'# 序列的通用操作
print(s1 + 'mia')
print(s1 * 3)
print(len(s1))
print(max(s1),min(s1))
print(ord('w'))
print(ord(' '))
# del s1
print('s' in s1)
print('abcd' < 'abce')
print('cd' < 'abcd')# 字符串的遍历
for i in s1:print(i)
for index,value in enumerate(s1):print(index,value)
for i in range(len(s1)):print(i,s1[i])# 类型转换
print(str(12),type(str(12))) # int-->str
print(str([1,2,3,4]),type(str([1,2,3,4]))) # list-->str
print(str((1,)),type(str((1,)))) # tuple-->str# 常用方法
print(s1.islower())
print(s1.isupper())
print(s1.isdigit())
print(s1.count('o'))
print(s1.strip()) # 去掉空格
print(s1.split(' ')) # 分隔字符串
print(s1.find('o',5,8))
print('#'.join(['111','222','333'])) # 连接# 字符串的统计
s = input('请输入一篇文章:')
# 字母的个数、数字的个数、符号的个数
a, b, c = 0, 0, 0
for i in s:if i.isdigit():b += 1elif i.isalpha():a += 1else:c += 1
print(a, b, c)
字典
定义
- dictionary(字典)是除列表以外 python之中最灵活的数据类型
- 字典同样可以用来存储多个数据
- 通常用于存储描述一个物体的相关信息
- 和列表的区别:列表是有序的对象集合;字典是无序的对象集合
- 字典用{}定义
- 字典使用键值对存储数据,键值对之间使用==,==分隔
- 键key是索引
- 值value是数据
- 键和值之间使用==:==分隔
- 键必须是唯一的
- 值可以取任何数据类型,但键只能使用字符串、数组或元组
示例代码
# 字典的创建
d = {'name':'mia', # 键值对'gender':'female','name':'jack', # 键重复的话,会覆盖掉之前的值
}
print(d)
print(type(d))
d = {}
print(d)
print(type(d))
d = dict()
print(d,type(d))
d = {'name':'mia', # 键值对'gender':'female',
}d['height'] = 170
print(d)
# 获取键值对
print(d['name'])
# 修改键值对
d['gender'] = 'male'
print(d)# del(d)
# print(d)
# in
print('age' in d)# 字典的遍历
for i in d:print(i,d[i])
print('-' * 30)
for k, v in d.items():print(k,v)
for k in d.keys():print(k)
for v in d.values():print(v)# 字典的常用方法
d.pop('gender')
print(d)
a = d.copy()
print('a的键值对', a)
print(d.get('name'))
d.popitem() # 从后往前删一个,入栈push出栈pop
print('pop',d)
d.update({'age':18})
print(d)
d.clear()
print(d)
集合
定义
- 不允许有重复元素,如果添加重复元素,则会自动过滤,可以进行交集、并集的运算
- 是一种无序且无重复元素的数据结构
- 与dict类似,是一组key的集合(不存储value)
示例代码
# 集合的创建
s = set()
print(s,type(s))
s = {1,2,3,4,1,2}
print(s,type(s))
s = set([1,2,3,1]) # list-->set
print(s)
s = set((1,2,3)) # tuple-->set
print(s)
s = set('123') # str-->set
print(s)s = set({1:'a','a':2}) # dict-->set:默认取key
print(s)
# in
print(1 in s)
print(2 in s)
print(len(s))
print(max({1,2,3}),min({1,2,3}))
# del s
# print(s)
# 集合不支持索引!!
# 集合的遍历
print('-' * 30)
for i in s:print(i)# 常用方法
s.remove('a')
print(s)
s.update({2,3,4,5,6,7,6,5})
print(s)
s.add(9)
print(s)
s.add(1)
print(s)
# 交集 并集
s2 = {5,6,7,8,9}
print(s & s2)
print(s | s2)# 列表去重
score = [80,70,60,80,70,60,40]
s = set(score)
print(s)
d = {}
# 统计各个分数都有几个学生
for i in s:t = score.count(i)print('得分为%d的学生有%d个人' %(i,t))d[i] = t
print(d)
for k,v in d.items():print('得分为%d的学生有%d个人' % (k, v))
可变类型&不可变类型
不可变数据类型在创建后,其值就不能被改变。Python中的以下数据类型是不可变的:
- 数字(例如:int、float、complex)
- 字符串(例如:str,不支持使用索引的方式进行修改)
- 元组(例如:tuple)
- 布尔类型(例如:bool)
可变类型
可变数据类型的值可以在创建后被改变。Python中以下数据类型的可变的:
- 列表(例如:list)
- 字典(例如:dict)
- 集合(例如:set)
相关文章:

【Python学习(七)——序列、列表、元组、range、字符串、字典、集合、可变类型不可变类型】
Python学习(七)——序列、列表、元组、range、字符串、字典、集合、可变类型&不可变类型 本文介绍了序列、列表、元组、range、字符串、字典、集合、可变类型&不可变类型,仅作为本人学习时记录,感兴趣的初学者可以一起看…...

MATLAB常用建模方法——常用非参数检验
常用非参数检验 在用样本数据对正态总体参数作出统计判断(例如参数估计和假设检验)时,要求样本数据应服从正态分布,这种数据分布类型已知的总体参数的假设检验称为参数假设检验。 与参数假设检验相对应的还有非参数假设检验&#…...
【多线程初阶篇 ²】创建线程的方式
目录 二、多线程代码 1.继承Thread类 2.实现Runnable接口 3.匿名内部类 3.1 创建Thread⼦类对象 3.2 创建Runnable⼦类对象 4.lambda表达式(推荐) 小结: 🔥面试题:Java中创建线程都有哪些写法 二、多线程代码 …...

纵览!报表控件 Stimulsoft Reports、Dashboards 和 Forms 2025.1 新版本发布!
Stimulsoft 2025.1 新版发布,旨在增强您创建报告、仪表板和 PDF 表单的体验!此最新版本为您带来了许多改进和新功能,使数据处理更加高效和用户友好。亮点包括对 .NET 9 的支持、Microsoft Analysis Services 的新数据适配器、发布向导中适用于…...

游戏引擎学习第75天
仓库:https://gitee.com/mrxiao_com/2d_game_2 Blackboard: 处理楼梯通行 为了实现楼梯的平滑过渡和角色的移动控制,需要对楼梯区域的碰撞与玩家的运动方式进行优化。具体的处理方式和遇到的问题如下: 楼梯区域的过渡: 在三维空间中&#x…...
Java 23 集合框架详解:Set 接口及实现类(HashSet、TreeSet、LinkedHashSet)
📚 Java 23 集合框架详解:Set 接口及实现类(HashSet、TreeSet、LinkedHashSet) 📖 概述 Set 是 Java 集合框架中用于存储 无序、不重复元素 的接口。它的实现类包括 HashSet、TreeSet 和 LinkedHashSet,它…...

ARMv8架构 CortexR52+ 内核 coresight_soc400介绍
前言:笔者在工作中接触到了一款多核芯片,其采用的处理器为CortexR52,使用的架构为ARMv8,我通过CoreSight SOC-400组件完成了对该芯片烧录代码的开发。这里芯片型号就不透露了,本文仅介绍我自己从ARM官网上提供的R52核等…...

1.Python浅过(语法基础)
1.简介 Python是一种面向对象的解释型高级编程语言,是强类型的动态脚本语言。 解释型语言跨平台性比编译型语言(如c语言)好。 print("hello world")2.Bug,Debug 多看,多思考,多尝试、查资料、记录 3.prin…...
ioremap_nocache函数
ioremap_nocache 是 Linux 内核中用于将物理地址映射到内核虚拟地址空间的函数,特别是用于 I/O 内存映射,并且禁用缓存。 一、基本语法 void __iomem *ioremap_nocache(phys_addr_t phys_addr, size_t size); 二、基本功能 将物理内存地址映射到内核虚拟…...

【235. 二叉搜索树的最近公共祖先 中等】
题目: 给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一…...

构建智能企业:中关村科金大模型企业知识库的技术解析与应用
在数字化转型的浪潮中,企业对智能化知识管理的需求日益增长。知识作为企业的核心资产,其高效管理和应用对于提升企业运营效率和决策质量至关重要。中关村科金大模型企业知识库凭借其强大的技术架构和广泛的应用场景,成为构建智能企业的重要工…...

C++进阶——用Hash封装unordered_map和unordered_set
目录 前言 源码怎么说 为什么要兼容? 兼容的具体做法? 为什么要把Key转为整数(HashFcn)? 模拟实现 一、建立框架 二、迭代器 运算符重载 迭代器兼容大法 三、[ ]重载 四、实现不能修改key 实现及测试代码 …...

b612相机 13.5.5解锁会员hook
工具 lspatch(点击选最新版本下载) shizuku(点击选最新版本下载) SimpleHook(点击选最新版本下载) b612(自行百度下载) 效果图 教程 [{"packageName":"com.camp…...
iOS - 弱引用表(Weak Reference Table)
1. 基本数据结构 // 弱引用表的基本结构 struct weak_table_t {weak_entry_t *weak_entries; // 保存所有的弱引用对象size_t num_entries; // 当前存储的弱引用数量uintptr_t mask; // 哈希表大小掩码uintptr_t max_hash_displacement; /…...
C#语言的网络编程
C#语言的网络编程 引言 随着互联网的飞速发展,网络编程成为了软件开发中的一个重要领域。C#语言作为一种现代编程语言,凭借其丰富的类库、良好的可读性和强大的功能,广泛应用于开发各种网络应用程序。无论是Windows应用、Web应用还是云服务…...

【操作系统】课程 4调度与死锁 同步测练 章节测验
4.1知识点导图 处理机调度与死锁相关内容的文字整理: 基本准则 资源利用率:使系统中的处理机和其他所有资源都尽可能地保持忙碌状态。系统吞吐量:单位时间内系统所完成的作业数。公平性:使各进程都获得合理的CPU时间,而…...

如何查看已经安装的python版本和相关路径信息
如何查看已经安装的python版本和相关路径信息 本文目录: 一、通过命令行模式查询 1、通过命令where python 2、通过命令print(sys.executable) 二、在 Anaconda Navigator 中 三、只安装python的环境下 一、通过命令行模式查询 同时按windowR键,输入cmd&#x…...
设计模式-结构型-适配器模式
在软件开发中,随着系统的不断扩展和模块的不断增加,往往会遇到不同模块之间接口不兼容的情况。此时,如果我们能通过某种方式将一个接口转化为另一个接口,那么开发工作将变得更加灵活和高效。适配器模式(Adapter Patter…...
鸿蒙操作系统(HarmonyOS)
鸿蒙操作系统(HarmonyOS)是华为公司推出的一款面向未来、面向全场景的分布式操作系统。它旨在为用户提供一个更加智能、便捷和安全的操作环境,支持多种终端设备之间的无缝协作。在鸿蒙应用开发中,ArkUI作为官方推荐的用户界面开发…...

基于海思soc的智能产品开发(camera sensor的两种接口)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 对于嵌入式开发设备来说,除了图像显示,图像输入也是很重要的一部分。说到图像输入,就不得不提到camera。目前ca…...

高等数学(下)题型笔记(八)空间解析几何与向量代数
目录 0 前言 1 向量的点乘 1.1 基本公式 1.2 例题 2 向量的叉乘 2.1 基础知识 2.2 例题 3 空间平面方程 3.1 基础知识 3.2 例题 4 空间直线方程 4.1 基础知识 4.2 例题 5 旋转曲面及其方程 5.1 基础知识 5.2 例题 6 空间曲面的法线与切平面 6.1 基础知识 6.2…...

屋顶变身“发电站” ,中天合创屋面分布式光伏发电项目顺利并网!
5月28日,中天合创屋面分布式光伏发电项目顺利并网发电,该项目位于内蒙古自治区鄂尔多斯市乌审旗,项目利用中天合创聚乙烯、聚丙烯仓库屋面作为场地建设光伏电站,总装机容量为9.96MWp。 项目投运后,每年可节约标煤3670…...
sqlserver 根据指定字符 解析拼接字符串
DECLARE LotNo NVARCHAR(50)A,B,C DECLARE xml XML ( SELECT <x> REPLACE(LotNo, ,, </x><x>) </x> ) DECLARE ErrorCode NVARCHAR(50) -- 提取 XML 中的值 SELECT value x.value(., VARCHAR(MAX))…...

如何在最短时间内提升打ctf(web)的水平?
刚刚刷完2遍 bugku 的 web 题,前来答题。 每个人对刷题理解是不同,有的人是看了writeup就等于刷了,有的人是收藏了writeup就等于刷了,有的人是跟着writeup做了一遍就等于刷了,还有的人是独立思考做了一遍就等于刷了。…...

GitFlow 工作模式(详解)
今天再学项目的过程中遇到使用gitflow模式管理代码,因此进行学习并且发布关于gitflow的一些思考 Git与GitFlow模式 我们在写代码的时候通常会进行网上保存,无论是github还是gittee,都是一种基于git去保存代码的形式,这样保存代码…...

基于Springboot+Vue的办公管理系统
角色: 管理员、员工 技术: 后端: SpringBoot, Vue2, MySQL, Mybatis-Plus 前端: Vue2, Element-UI, Axios, Echarts, Vue-Router 核心功能: 该办公管理系统是一个综合性的企业内部管理平台,旨在提升企业运营效率和员工管理水…...

FFmpeg:Windows系统小白安装及其使用
一、安装 1.访问官网 Download FFmpeg 2.点击版本目录 3.选择版本点击安装 注意这里选择的是【release buids】,注意左上角标题 例如我安装在目录 F:\FFmpeg 4.解压 5.添加环境变量 把你解压后的bin目录(即exe所在文件夹)加入系统变量…...
32单片机——基本定时器
STM32F103有众多的定时器,其中包括2个基本定时器(TIM6和TIM7)、4个通用定时器(TIM2~TIM5)、2个高级控制定时器(TIM1和TIM8),这些定时器彼此完全独立,不共享任何资源 1、定…...
Vue3中的computer和watch
computed的写法 在页面中 <div>{{ calcNumber }}</div>script中 写法1 常用 import { computed, ref } from vue; let price ref(100);const priceAdd () > { //函数方法 price 1price.value ; }//计算属性 let calcNumber computed(() > {return ${p…...
大数据治理的常见方式
大数据治理的常见方式 大数据治理是确保数据质量、安全性和可用性的系统性方法,以下是几种常见的治理方式: 1. 数据质量管理 核心方法: 数据校验:建立数据校验规则(格式、范围、一致性等)数据清洗&…...