元组


概念

元组:由一系列变量组成的不可变序列容器

序列:支持索引和切片

不可变:1.没有增删改的方法
2.所有的操作都不会直接作用于原数据

定义

<span style="font-size: 16px;" data-mce-style="font-size: 16px;">元组        tuple        ()

#1.定义多个数据的元组
tuple1 = (1,2.9,"3",[1,2,3],5)
tuple2 = 1,2.9,"3",[1,2,3],5
print(tup;e2) #(1,2.9,"3",[1,2,3],5)
print(type(tuple2)) #class tuple #2.定义单个数据的元组---&gt;单个数据后需要加逗号
#如果不加逗号,当前变量与元素的类型一致
tuple3 = ("2.3",)
print(tuple3) #("2.3")s索引<br></span>

索引

1 tuple1 = (1,2.9,"3",[1,2,3],5)
2 #索引
3 #元组[索引]
4 #从左往右,从0开始,从右往左,从-1开始
5 print(tuple1[3]) #[1,2,3]
6 print(tuple1[-3]) #"3"

切片

tuple1 = (1,2.9,"3",[1,2,3],5)

#切片
#元组[开始下标:结束下标:步长]
#1.取头不取尾
#2.步长不写默认为1,步长可以是正负数
#3.下标可以正负数混搭
#4.[:m] 从开头取到下标为m的前一位
#5.[n:] 从下标为n的位置取到最后
#6.[:] [::] 取整个元组
#7.[::-1] 反转
print(tuple1[1:4])
print(tuple1[-4:-1])
print(tuple1[1:-1])
print(tuple1[-4:4])
print(tuple1[:3])
print(tuple1[3:])
print(tuple1[:])
print(tuple1[::])
print(tuple1[::-1])

查询方法

index():统计元素在元组中第一次出现的位置的下标:如果元素不存在则报错
count():统计元素在元组中出现的次数:如果元素不存在则返回0

补充方法

tuple = ("hello",26,37,8,54,12,"hello",8,9)

#补充方法:

#len()
#语法:len(数据)
#作用:统计数据的长度:统计数据中元素的个数(集合具有唯一性)
print(len(tuple)) #in
#语法:元素 in 集合
#作用:判断元素是否在集合中存在,如果存在则返回True,否则返回False
print(540 in tuple)# False #not in
#语法:元素 not in 集合
#作用:判断元素是否不在集合中存在,如果不存在则返回True,否则返回False
print(540 not in tuple) #True #+
#元组 + 元组
tuple1 = (4,5,6)
print(tuple+tuple1) #*
#元组 * 数字
print(tuple1*3)

循环遍历元组

#循环遍历元组

tuple = (”玛卡巴卡“,”唔西迪西“)

#for 循环
#for 临时变量 in 循环遍历:
# 代码块 for i in tuple:
print(i) #while循环--->索引的范围: 0~len()-1
#初始值
#while 循环条件:
# 代码块
# 步长 num = 0
while num<= len(tuple)-1:
#通过索引取值 元组[索引]
print(tuple[num])
num += 1

集合


概念

由一系列不可变不重复的数据组成的可变容器

集合中只能存放不可变的数据类型的数据:整型、浮点型、字符串、元组

唯一性:集合中的元素具有唯一性,集合中的数据会自动被去重

无序性:集合中的元素具有无序性,不支持索引切片操作

可变:1.有增删方法
2.所有的操作会直接作用于原数据 集合为什么没有修改方法?
修改的思路:通过索引找到要修改的数据,重新赋值 集合具有无序性:无法定位到要修改的数据的位置,集合没有修改的方法

定义

集合        set         {}

#1.定义有数据的集合
set1 = {1,2.6,”3“,(1,2,3),6,6,1,”3“}
print(set1)
print(type(set1)) #2.定义空集合--->构造法 本质是数据类型转换 set()
str1 = ”“
list = []
tuple1 = ()
set1 = set()
print(set1)

增加数据的方法

#集合增加数据的方法

set1 = {1,2,3}

#add()
#语法:集合.add(不可变数据)
#作用:将数据作为一个整体添加到集合中
set1.add(10)
set1.add(5.6)
set1.add(”hello“)
set1.add((1,2,3))
print(set1) #update()
#语法:集合.update(可迭代对象)
#作用:将可迭代对象中的元素进行拆分,添加到集合中;要求可迭代对象中的元素必须是不可变数据
set1.update(”hello“)
print(set1)

删除数据的方法

# 集合删除数据的方法

set1 = {"hello",26,37,87,54,12,70,8,9}

# pop
# 语法:集合.pop()
# 作用:随机删除集合中的一个元素
set1.pop()
print(set1) # remove
# 语法:集合.remove(元素)
# 作用:从集合中删除指定元素;如果元素不存在则报错
set1.remove(700)
print(set1) #discard
#语法:集合.discard(元素)
#作用:从集合中删除指定元素:如果元素不存在不报错也不做任何删除操作
set.discard(870)
print(set1) # clear
# 语法:集合.clear()
# 作用:清空集合,集合仍然存在
set1.clear()
print(set1) # del
# 语法:del 集合
# 作用:删除整个集合,集合不存在;
del set1
print(set1)

补充方法

set1 = {"hello",26,37,8,54,12,"hello",8,9}

# 补充方法:

# len()
# 语法:len(数据)
# 作用:统计数据的长度;统计数据中元素的个数(集合具有唯一性)
print(len(set1)) # in
# 语法:元素 in 集合
# 作用:判断元素是否在集合中存在,如果存在则返回True,否则返回False
print(540 in set1) # not in
# 语法:元素 not in 集合
# 作用:判断元素是否不在集合中存在,如果不存在则返回True,否则返回False
print(540 not in set1)

交集和并集

set1 = {1,2,3,4,5}
set2 = {4,5,6,7,8} #交集 & 交叉重合的部分数据
print(set1&set2)#(4,5) #并集 | 将多个集合中的数据合并到一起(集合具有唯一性)
print(set1|set2)#(1,2,3,4,5,6,7,8)

字典


概念

由一系列键值对组成的可变映射容器

键值对:
可变:1.有增删改方法
2.所有的操作会直接作用于原数据 映射:键与值一一对应的关系

定义

字典        dict        {}

#定义字典

#1.直接定义字典
#语法:{键:值,键:值}--->键与值之间使用冒号隔开:键值对与键值对之间用逗号隔开
#键-key:name、age、height、address 键不重复且不可变:不可变的数据类型:整型、浮点型、字符串、元组;
#值-value:张三、18、189、北京某桥东下 值支持所有的数据类型
#键值对-item:”name“:”张三“
dict1 = {”name“:”张三“,”age“:18,”height“:18.9,(”address“):[”北京“]}
print(dict1)
print(type(dict1)) #2.构造法--->本质通过数据类型转换 dict(键=值,键=值)
dict2 = dict(name=”李四",gender=“女”,age=16)
print(dict2)
print(type(dict2))

增加和修改方法

dict1 = {”name“:“张三”,“age”:18}

#规则:有则修改,无则增加

#增加方法 修改方法
#语法:字典名[键] = 值
dict["phone"] = 110

删除方法

#删除方法

#1.clear()
#语法:字典名.clear()
#作用:清空字典,字典仍然存在
dict1.clear()
print(dict1) #2.del
#语法:del 字典名 del 字典名[键]
#作用:删除字典,字典不存在;删除指定键对应的键值对
del dict1[”name“]
print(dict1)

查询方法

dict1 = {”name“:”张三“,”age“:18}

#查询--->只能通过键找值,不能值找键

#1.直接查询
#语法:字典名[键]
#作用:通过键找值,如果键不存在则报错
print(dict1["age"]) #2.get()
#语法:字典名.get(键,默认值)
#作用:通过键找值,如果键不存在则返回None;可以给不存在的键设置默认值
print(dict1.get(”age“,110))

字典常用方法

#字典常用方法

dict1 = {“name”:“张三”,“age”:18}

#keys()
#语法:字典名.keys()
#作用:以列表的形式获取字典中所有的值
print(dict1.keys) #values()
#语法:字典名.values()
#作用:以列表的形式获取字典中所有的值
print(dict1.values()) #items()
#语法:字典名.items()
#作用:以列表的形式返回所有的键值对;键与对应的值存放在一个元组中,多个元组存放在列表中
print(dict1.items())

循环遍历字典

#循环遍历字典

dict1 = {“name”:“张三”,“age“:18}

#循环遍历获取字典中所有的键-->同时可以获取值
for i in dict1.keys():
print(i,dict1[i]) #循环遍历获取字典中所有的值
for i in dict1.values():
print(i) #循环遍历获取字典中的键值对
#[("name","张三")("age",18)]
#使用一个临时变量接收结果 i就是元组(键,值)
for i in dict1.items():
print(i) #使用两个临死变量接收结果 i接收所有的键,j接收所有的值
for i,j in dict1.items():
print(j)

python基础-元组-集合-字典的更多相关文章

  1. 『Python基础-10』字典

    # 『Python基础-10』字典 目录: 1.字典基本概念 2.字典键(key)的特性 3.字典的创建 4-7.字典的增删改查 8.遍历字典 1. 字典的基本概念 字典一种key - value 的 ...

  2. Python基础知识(五)------字典

    Python基础知识(四)------字典 字典 一丶什么是字典 ​ dict关键字 , 以 {} 表示, 以key:value形式保存数据 ,每个逗号分隔 ​ 键: 必须是可哈希,(不可变的数据类型 ...

  3. Python—列表元组和字典

    Python-列表元组和字典 列表 元组 字典 列表: 列表是Python中的一种数据结构,他可以存储不同类型的数据.尽量存储同一种类型 列表索引是从0开始的,我们可以通过索引来访问列表的值. 列表的 ...

  4. python基础数据类型--集合(set)

    python基础数据类型--集合(set) 集合是一个数学概念由一个或多个确定的元素所构成的整体叫做集合 集合中的三个特征 1.确定性(元素必须死可hash) 2.互异性(去重) 3.无序性(集合中的 ...

  5. Python基础数据类型之字典

      基础数据类型之字典 ps:数据类型划分:可变数据类型和不可变数据类型. 不可变数据类型:元组(tupe).布尔值(bool).整数型(int).字符串(str).不可变数据类型也称为可哈希. 可变 ...

  6. python基础08_set集合

    关于前几次课的回顾: #!/usr/bin/env python # coding:utf-8 ## 字符串 数字 列表 元组 字典 ## 可变:列表 字典 ## 不可变:字符串, 数字, 元组 na ...

  7. python基础——数字&集合&布尔类型

    Python的核心数据类型 内置对象 对象类型 例子 数字 123,3.1415,3+4j,Decimal(小数),Fraction(分数) 字符串 'dodo',"guido's" ...

  8. 01.Python基础-3.集合容器

    1 列表list 1.1 列表介绍 Python内置的一种数据类型是列表:list. 有序的集合,可随时添加和删除其中的元素. 每个元素都分配一个数字 --它的位置,或索引.0,1,2,3-- 可存放 ...

  9. python基础-3 集合 三元运算 深浅拷贝 函数 Python作用域

    上节课总结 1 运算符 in 字符串 判断  : “hello” in "asdasfhelloasdfsadf" 列表元素判断:"li" in ['li', ...

  10. python基础dict,集合,文件

    字典是一种key:value的数据类型dict1{ 'stud1':'孙礼昭', 'stud2':'slz', 'stud3':'sunlizhao',}dict是无序的,key是唯一的  天生去重增 ...

随机推荐

  1. JavaScript ES6基础

    1.let声明 1.let不像var有变量声明提升,未声明直接使用会报错 console.log(a); //undefined var a; console.log(b); //报错 let b; ...

  2. seldom-platform:颠覆传统的自动化测试平台

    seldom-platform:颠覆传统的自动化测试平台 seldom-platform是一个自动化测试平台,其特点是让会写代码的测试人员能够通过seldom框架高效地完成自动化用例的编写,并将剩下的 ...

  3. Visual Studio 2017 rc 资源文件 预处理 宏 无效

    在属性c++下的预处理宏不会影响rc资源文件的,需要对rc资源文件单独设置. 右键rc资源文件,点击属性,在预处理器定义添加需要的宏

  4. Qt编写地图综合应用41-在线轮廓图

    一.前言 轮廓图也叫行政区划,这里的轮廓图是指百度地图的区域轮廓图,不是之前文章中提到的echart专用的轮廓图,百度地图的轮廓图就是一个不规则的多边形区域,只不过这个区域的坐标点一般是特别多的,比如 ...

  5. 是时候弃用ibSass和node-sass而采用Dart Sass了!

    背景说明 此次改动是在 Sass 核心团队进行了大量讨论之后,得出的结论,现在是时候正式宣布弃用 LibSass 和基于它构建的包(包括 Node Sass).多年来,LibSass 显然没有足够的工 ...

  6. Visual Studio2012编译C#项目时出错“LC.exe”已退出的解决方法

    症状: Visual Studio2012编译C#项目时出错"LC.exe"已退出,代码为 -1. 原因: 因为证书的原因,把项目中"properties"目录 ...

  7. 在Deepin系统上配置微软Windows远程桌面服务

    . 前言 本文主要讲解如何在deepin系统上安装和配置Xrdp远程桌面. Xrdp是微软的远程桌面协议(Remote Desktop Protocol, RDP)的开源版本.在Linux系统上安装X ...

  8. 一个适用于 .NET 的开源整洁架构项目模板

    前言 项目架构模式在软件开发中扮演着至关重要的角色,它们为开发者提供了一套组织和管理代码的指导原则,以提高软件的可维护性.可扩展性.可重用性和可测试性.今天大姚给大家分享一个适用于 .NET 的开源整 ...

  9. Java生成Word文档之 XDocReport 和 Poi-tl

    近期参与的多个项目中,均涉及根据预定义模板生成Word文档以供前端下载的需求.以往,我们通常采用将Word文档转换为XML格式,并通过代码赋值变量的方式来实现这一功能.尽管此方法在技术层面可行,但当面 ...

  10. 用于决策的世界模型 -- 论文 World Models (2018) & PlaNet (2019) 讲解

    参考资料: [2411.14499] Understanding World or Predicting Future? A Comprehensive Survey of World Models ...