python的多元数据类型(下)
作者:Tallbo 发布时间:2023-06-17 02:45:11
目录
元组
1.什么是元组tuple
2.元组tuple支持什么数据类型
3.元组tuple的基本特征
4.如何声明一个元组tuple
5.玩转元组tuple
字典
总结
元组
1.什么是元组tuple
元组tuple像是一个list,但是它内部的值不可被修改。元组是一个有序的、不可变数据结构/类型
注意列表和元组之间一个有趣的关系:
列表 >> 元组 为加锁
元组 >> 列表 为解锁
支持元组和列表互相转换
元组是一个保险柜,数据进入就是安全的
列表和元组的对比:
为什么需要有元组?
1、元组tuple对于大型数据处理速度优于列表list,如果你有一个常量集需要经常遍历(for),那么元组的效率优于列表
2、元组tuple由于其无法“写入”的特点,放在元组内部的数据自然就有一个“写保护”,类似我们sd卡、cf卡或者部分U盘
3、特别注意:当函数(方法)返回的数据大于一个时,一般以元组形式返回
4、特别注意:由于元组的“写保护”模式,函数可以按照元组内部元素的位置顺序接受元组的数据
2.元组tuple支持什么数据类型
元组支持不可变的数据类型 :字符串str、整数int 、浮点float 、布尔bool 、元组tuple 、字典dict和列表list
3.元组tuple的基本特征
增加:支持空元组创建 不支持数据更新(添加)
删除:仅支持元组整体删除 不支持元素删除和切片删除
修改:不能修改
查询:
1、支持元组数据查询(基于下标、索引、index)
2、支持切片查询
3、支持第一级元素长度统计(len)
4.如何声明一个元组tuple
方法一:空值创建 tuple_data = tuple()
方法二:空值创建 tuple_data = ()
特别方法:单个值创建 tuple_data = (“北京”,)必须要有逗号以区分该类型为元组
特别方法:多值无括弧创建 tuple_data = “北京” , “上海”
元组的语法规则:元组之间使用 ,区隔
("23",23,True,1.78,"人")
头尾使用小括弧()
元组添加其他类型数据(嵌套)
([35,"kk"],{"名字":"like","ij":"iji"},(4,1,"3"))
特别注意:
1、元组内的每个元素(数据),遵守该数据类型的原有规则。比如字符串类型是要加引号“”
2、可以有多层嵌套,每一层嵌套为一个独立体存在
3、元组的“写保护”只保护一级数据,如["like",29]是元组的一个元素,这个元素内的元素可以按照列表的方式进行增删改查操作,如果元组内还是元组,那么即为元组的规则,无法“写入”操作
5.玩转元组tuple
声明创建一个机遇个人信息的元组:
personal_info= (“like”,88,“张三”,1.4)
元组的基本操作:
1、查询:
查询数据personal_info[1]
基于索引位置去数据>>>(88) (整数类型)取一个值为当前值的类型
personal_info[0:2]
基于索引范围取数据>>>("like",88)取多个值还是一个元组
2、删除:
del personal_info 删除整个元组
3、元组的拼接:
num_1 = (1,2,3)
num_2 = (4,5,6)
num_new = num_1 + num_2 输出为 >>>(1,2,3,4,5,6)
4、元组和列表转换:
list_data = [1,2,3]
new_tuple = tuple(list_data) 输出为>>> (1,2,3)
tuple_data = (1,2,3)
new_list = list(tuple_data) 输出为>>> [1,2,3]
5、元组通过变量直接取值
personal_info = ("张三","北京",22)
name,city,age = personal_info
输出为>>>
name 为 张三
city为北京
age为22
6、元素数量统计
message = (1,2,3,4,1,3,1)
message.conunt(1) 输出>>>1
7、自身复制
message = (1,2,3)
message_new = message * 3 输出为>>> (1,2,3,1,2,3,1,2,3)
8、元组的长度
num_1= (1,2,3,4)
len(num_1) 输出为>>>4
9、包含关系判断
message = ("好",'好','学','习')
"好" in message 输出为>>>True
特别注意仅支持当前层级的判断
10、切片延伸
num = (0,1,2,3,4,5,6,7,8,9)
num[0:10:2][起:止:步长] 输出>>>(0,2,4,6,8)
特别注意-类似for循环里的range()函数
num[::2]输出>>>(0,2,4,6,8)
特别注意-起止不设定默认从头到尾的范围
11、new_tuple = ("哈士奇","萨摩","泰迪")
元组跟列表这两个数据类型的性质决定了它通常内部存在的数据比较长,书写的时候会超出屏幕的边界,所以说你可以这样做:
new_tuple = (
"哈士奇",
"萨摩",
"泰迪"
)
12、元组的嵌套
元组和元组嵌套与列表与列表嵌套的差异:
元组中的列表可以按照列表的特征进行操作:
new_tuple = (
[1,2,3],
[2,3,4],
[3,4,5]
)
元组中的元组的元素不可以修改:
new_tuple = (
(1,2,3),
(2,3,4),
(3,4,5)
)
13、tuple与for循环
1、初级难度
dogs = (
"哈士奇",
"萨摩",
"泰迪"
)
for dog in dogs:
print(dog)
第一次:哈士奇
第二次:萨摩
第三次:泰迪
2、中级难度
menus = (
('拍黄瓜','大拌菜'),
('鸡丁','肉丝'),
('蛋糕','冰淇凌')
)
for menu in menus:
print(menu)
第一次:('拍黄瓜','大拌菜')
第二次:('鸡丁','肉丝')
第三次:('蛋糕','冰淇凌')
3、高级难度
menus = (
('拍黄瓜','大拌菜'),
('鸡丁','肉丝'),
('蛋糕','冰淇凌')
)
for menu in menus:
print(menu)
for food in menu:
print(food)
第一次:('拍黄瓜','大拌菜')
内第一次:拍黄瓜
内第二次:大拌菜
第二次:('鸡丁','肉丝')
内第一次:鸡丁
内第二次:肉丝
第三次:('蛋糕','冰淇凌')
内第一次:蛋糕
内第二次:冰淇凌
字典
一个可以存储具有一系列映射关系的数据结构即为字典表
1、字典表dict支持什么数据类型:
字典中支持存储:字符串str、整数int、浮点float、布尔bool、列表list、元组tuple、字典dict
2、字典表的特征
dict 2个不准:不准改变键(KEY)键(KEY)不允许重复
dict4个支持:增加键(KEY)和值(Value)
删除键(KEY)和值(Value)
基于键(KEY)改变值(Value)
基于键(KEY)查询值(Value)
dict 2个注意:只能使用不可变类型作为键、通常不使用数字(int/float)作为建
3、如何声明一个字典
方法一: 空值创建 dict_1 = dict()
方法二:空值创建 dict_2 = {}
方法三:非空值创建 dict _3 = {"姓名":'张三'}
dict _4 = dict({"姓名":'张三'})
dict _5 = dict("姓名" = '张三')
按照key:value 的格式可以建立多个键值对(items)的字典表
一个键和一个值叫键值对在python里这个叫一个item(全部字典表里的键值对那就是items)
字典表的语法规则{'NAME':"张三","age",18}
键值之间 冒号:分割 键值对(item)之间的分割使用,逗号
字典表加入列表和元组类型
{"NAME":("张三","李四")},'city':['BJ',‘HB']
注意列表 元组[ ] ( )外 不要加引号否则会转成字符串
4、玩转字典表
声明创建一个基于个人信息的字典
info = {"姓名":'张三',"年龄",20}
字典表基本操作
增加数据:info['性别'] = '男' 字典名[键] = 添加的值
修改数据:info['年龄'] = 21 字典名[键] = 修改的值
查询数据:info['年龄'] 或 info.get("年龄")
删除数据: del info['年龄'] 或 info.pop("年龄") 或 info.clear() 清空字典
总结
本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注脚本之家的更多内容!
来源:https://blog.csdn.net/Tallbo/article/details/121292051
猜你喜欢
- 本文实例讲述了Python多继承原理与用法。分享给大家供大家参考,具体如下:python中使用多继承,会涉及到查找顺序(MRO)、重复调用(
- 本文实例讲述了Python爬虫爬取电影票房数据及图表展示操作。分享给大家供大家参考,具体如下:爬虫电影历史票房排行榜 http://www.
- 介绍 IIRF是一款开源的重写URL过滤器,类似于Apache的URL重写,基于VC8.0(可以用Visual Studio200
- golang并没有像C语言一样提供三元表达式。三元表达式的好处是可以用一行代码解决原本需要多行代码才能完成的功能,让冗长的代码瞬间变得简洁。
- 从学习Python至今,发现很多时候是将Python作为一种工具。特别在文本处理方面,使用起来更是游刃有余。说到文本处理,那么正则表达式必然
- 一个写给别人的小代码顺便也贴上来这是一个滑动展示用的小容器通过鼠标移动和离开触发滑动效果<!DOCTYPE html PUBLIC &
- django创建自定义模板处理器:一、需求来源:在django开发中,页面是通过template(模板)进行渲染的,对于一些数据,可以通过{
- 列表添加元素append(),extend(),insert(),+list区别回忆初学python的时候,对列表list添加元素时,对类表
- asp中利用XMLhttp对象获取远程的数据,然后用二进制输出到客户浏览器,让客户下载数据,此例从某一远程服务器获取一个压缩包,并且输出到浏
- 这个效果前些日子有人在论坛问起,今天有空研究了下。我打了原创标记,因为我在写这个方法时的确没有参考过别人的代码。我的方法其实就是层遮罩加AL
- 本文实例讲述了python读写配置文件操作。分享给大家供大家参考,具体如下:在用编译型语言写程序的时候,很多时候用到配置文件,作为一个约定的
- 百度地图开放平台进入百度地图开放平台后,登陆用户,点击上方的控制台,按照提示进行激活后创建服务端类型的应用,应用名任意设置,其中白名单校验不
- 万众瞩目的 Firefox 3 从昨天开始可以下载了,用“铺天盖地”四个字来形容她的宣传一点都不为过。大多数的广告还是她的fans自发进行的
- 本文实例讲述了python使用arp欺骗伪造网关的方法。分享给大家供大家参考。具体实现方法如下:#coding:utf-8''
- SQL Server数据库查询优化的常用方法总结:本文中,abigale代表查询字符串,ada代表数据表名,alice代表字段名。技巧一:问
- 1 什么是 NumpyNumPy,是 Numerical Python 的简称,用于高性能科学计算和数据分析的基础包,像数学科学工具(pan
- 在使用python通过open()函数来打开文件的时候,传递绝对路径给open()的时候,发现路径参数的内容与想象中的有所出入:由于wind
- # -*-coding:utf-8-*-import sys, os'''将当前进程fork为一个守护进程注意:如果
- Request.ServerVariables("Url") 返回服务器地址Request.ServerVariable
- 有这样一个要求,它要创建一个SQL Server查询,其中包括基于事件时刻的累计值。典型的例子就是一个银行账户,因为你每一次都是在不同的时间