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

【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循环遍历
  1. 原型:range([start,] stop [,step])
  2. 功能:生成列表
  3. 参数:
  • 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之中最灵活的数据类型
  • 字典同样可以用来存储多个数据
  • 通常用于存储描述一个物体的相关信息
  • 和列表的区别:列表是有序的对象集合;字典是无序的对象集合
  1. 字典用{}定义
  2. 字典使用键值对存储数据,键值对之间使用==,==分隔
  3. 键key是索引
  4. 值value是数据
  5. 键和值之间使用==:==分隔
  6. 键必须是唯一的
  7. 值可以取任何数据类型,但只能使用字符串、数组或元组

示例代码

# 字典的创建
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学习&#xff08;七&#xff09;——序列、列表、元组、range、字符串、字典、集合、可变类型&不可变类型 本文介绍了序列、列表、元组、range、字符串、字典、集合、可变类型&不可变类型&#xff0c;仅作为本人学习时记录&#xff0c;感兴趣的初学者可以一起看…...

MATLAB常用建模方法——常用非参数检验

常用非参数检验 在用样本数据对正态总体参数作出统计判断&#xff08;例如参数估计和假设检验&#xff09;时&#xff0c;要求样本数据应服从正态分布&#xff0c;这种数据分布类型已知的总体参数的假设检验称为参数假设检验。 与参数假设检验相对应的还有非参数假设检验&#…...

【多线程初阶篇 ²】创建线程的方式

目录 二、多线程代码 1.继承Thread类 2.实现Runnable接口 3.匿名内部类 3.1 创建Thread⼦类对象 3.2 创建Runnable⼦类对象 4.lambda表达式&#xff08;推荐&#xff09; 小结&#xff1a; &#x1f525;面试题&#xff1a;Java中创建线程都有哪些写法 二、多线程代码 …...

纵览!报表控件 Stimulsoft Reports、Dashboards 和 Forms 2025.1 新版本发布!

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

游戏引擎学习第75天

仓库:https://gitee.com/mrxiao_com/2d_game_2 Blackboard: 处理楼梯通行 为了实现楼梯的平滑过渡和角色的移动控制&#xff0c;需要对楼梯区域的碰撞与玩家的运动方式进行优化。具体的处理方式和遇到的问题如下&#xff1a; 楼梯区域的过渡&#xff1a; 在三维空间中&#x…...

Java 23 集合框架详解:Set 接口及实现类(HashSet、TreeSet、LinkedHashSet)

&#x1f4da; Java 23 集合框架详解&#xff1a;Set 接口及实现类&#xff08;HashSet、TreeSet、LinkedHashSet&#xff09; &#x1f4d6; 概述 Set 是 Java 集合框架中用于存储 无序、不重复元素 的接口。它的实现类包括 HashSet、TreeSet 和 LinkedHashSet&#xff0c;它…...

ARMv8架构 CortexR52+ 内核 coresight_soc400介绍

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

1.Python浅过(语法基础)

1.简介 Python是一种面向对象的解释型高级编程语言&#xff0c;是强类型的动态脚本语言。 解释型语言跨平台性比编译型语言&#xff08;如c语言&#xff09;好。 print("hello world")2.Bug,Debug 多看&#xff0c;多思考&#xff0c;多尝试、查资料、记录 3.prin…...

ioremap_nocache函数

ioremap_nocache 是 Linux 内核中用于将物理地址映射到内核虚拟地址空间的函数&#xff0c;特别是用于 I/O 内存映射&#xff0c;并且禁用缓存。 一、基本语法 void __iomem *ioremap_nocache(phys_addr_t phys_addr, size_t size); 二、基本功能 将物理内存地址映射到内核虚拟…...

【235. 二叉搜索树的最近公共祖先 中等】

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

构建智能企业:中关村科金大模型企业知识库的技术解析与应用

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

C++进阶——用Hash封装unordered_map和unordered_set

目录 前言 源码怎么说 为什么要兼容&#xff1f; 兼容的具体做法&#xff1f; 为什么要把Key转为整数&#xff08;HashFcn&#xff09;&#xff1f; 模拟实现 一、建立框架 二、迭代器 运算符重载 迭代器兼容大法 三、[ ]重载 四、实现不能修改key 实现及测试代码 …...

b612相机 13.5.5解锁会员hook

工具 lspatch&#xff08;点击选最新版本下载&#xff09; shizuku&#xff08;点击选最新版本下载&#xff09; SimpleHook&#xff08;点击选最新版本下载&#xff09; b612&#xff08;自行百度下载&#xff09; 效果图 教程 [{"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#语言的网络编程 引言 随着互联网的飞速发展&#xff0c;网络编程成为了软件开发中的一个重要领域。C#语言作为一种现代编程语言&#xff0c;凭借其丰富的类库、良好的可读性和强大的功能&#xff0c;广泛应用于开发各种网络应用程序。无论是Windows应用、Web应用还是云服务…...

【操作系统】课程 4调度与死锁 同步测练 章节测验

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

如何查看已经安装的python版本和相关路径信息

如何查看已经安装的python版本和相关路径信息 本文目录&#xff1a; 一、通过命令行模式查询 1、通过命令where python 2、通过命令print(sys.executable) 二、在 Anaconda Navigator 中 三、只安装python的环境下 一、通过命令行模式查询 同时按windowR键,输入cmd&#x…...

设计模式-结构型-适配器模式

在软件开发中&#xff0c;随着系统的不断扩展和模块的不断增加&#xff0c;往往会遇到不同模块之间接口不兼容的情况。此时&#xff0c;如果我们能通过某种方式将一个接口转化为另一个接口&#xff0c;那么开发工作将变得更加灵活和高效。适配器模式&#xff08;Adapter Patter…...

鸿蒙操作系统(HarmonyOS)

鸿蒙操作系统&#xff08;HarmonyOS&#xff09;是华为公司推出的一款面向未来、面向全场景的分布式操作系统。它旨在为用户提供一个更加智能、便捷和安全的操作环境&#xff0c;支持多种终端设备之间的无缝协作。在鸿蒙应用开发中&#xff0c;ArkUI作为官方推荐的用户界面开发…...

基于海思soc的智能产品开发(camera sensor的两种接口)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 对于嵌入式开发设备来说&#xff0c;除了图像显示&#xff0c;图像输入也是很重要的一部分。说到图像输入&#xff0c;就不得不提到camera。目前ca…...

stm32G473的flash模式是单bank还是双bank?

今天突然有人stm32G473的flash模式是单bank还是双bank&#xff1f;由于时间太久&#xff0c;我真忘记了。搜搜发现&#xff0c;还真有人和我一样。见下面的链接&#xff1a;https://shequ.stmicroelectronics.cn/forum.php?modviewthread&tid644563 根据STM32G4系列参考手…...

LeetCode - 394. 字符串解码

题目 394. 字符串解码 - 力扣&#xff08;LeetCode&#xff09; 思路 使用两个栈&#xff1a;一个存储重复次数&#xff0c;一个存储字符串 遍历输入字符串&#xff1a; 数字处理&#xff1a;遇到数字时&#xff0c;累积计算重复次数左括号处理&#xff1a;保存当前状态&a…...

如何在看板中有效管理突发紧急任务

在看板中有效管理突发紧急任务需要&#xff1a;设立专门的紧急任务通道、重新调整任务优先级、保持适度的WIP&#xff08;Work-in-Progress&#xff09;弹性、优化任务处理流程、提高团队应对突发情况的敏捷性。其中&#xff0c;设立专门的紧急任务通道尤为重要&#xff0c;这能…...

1.3 VSCode安装与环境配置

进入网址Visual Studio Code - Code Editing. Redefined下载.deb文件&#xff0c;然后打开终端&#xff0c;进入下载文件夹&#xff0c;键入命令 sudo dpkg -i code_1.100.3-1748872405_amd64.deb 在终端键入命令code即启动vscode 需要安装插件列表 1.Chinese简化 2.ros …...

【Java_EE】Spring MVC

目录 Spring Web MVC ​编辑注解 RestController RequestMapping RequestParam RequestParam RequestBody PathVariable RequestPart 参数传递 注意事项 ​编辑参数重命名 RequestParam ​编辑​编辑传递集合 RequestParam 传递JSON数据 ​编辑RequestBody ​…...

多种风格导航菜单 HTML 实现(附源码)

下面我将为您展示 6 种不同风格的导航菜单实现&#xff0c;每种都包含完整 HTML、CSS 和 JavaScript 代码。 1. 简约水平导航栏 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport&qu…...

实现弹窗随键盘上移居中

实现弹窗随键盘上移的核心思路 在Android中&#xff0c;可以通过监听键盘的显示和隐藏事件&#xff0c;动态调整弹窗的位置。关键点在于获取键盘高度&#xff0c;并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...

Linux --进程控制

本文从以下五个方面来初步认识进程控制&#xff1a; 目录 进程创建 进程终止 进程等待 进程替换 模拟实现一个微型shell 进程创建 在Linux系统中我们可以在一个进程使用系统调用fork()来创建子进程&#xff0c;创建出来的进程就是子进程&#xff0c;原来的进程为父进程。…...

九天毕昇深度学习平台 | 如何安装库?

pip install 库名 -i https://pypi.tuna.tsinghua.edu.cn/simple --user 举个例子&#xff1a; 报错 ModuleNotFoundError: No module named torch 那么我需要安装 torch pip install torch -i https://pypi.tuna.tsinghua.edu.cn/simple --user pip install 库名&#x…...

SQL慢可能是触发了ring buffer

简介 最近在进行 postgresql 性能排查的时候,发现 PG 在某一个时间并行执行的 SQL 变得特别慢。最后通过监控监观察到并行发起得时间 buffers_alloc 就急速上升,且低水位伴随在整个慢 SQL,一直是 buferIO 的等待事件,此时也没有其他会话的争抢。SQL 虽然不是高效 SQL ,但…...