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

Python基础之元组列表集合字典

目录

  • 一、元组(Turple)
    • 1.1、概念
      • 定义
      • 注意事项
    • 1.2、常见操作
      • 元组只支持查询操作,不支持增删改操作。
      • 查询元素
  • 二、列表
    • 1.1、概念
      • 定义
      • 注意事项
    • 1.2、常见操作
      • 添加
      • 修改
      • 查找
      • 删除
      • 排序
      • 列表推导式
      • 列表嵌套
  • 三、集合
    • 1.1、概念
      • 定义
      • 集合的特点
    • 1.2、常见操作
      • 添加元素
      • 删除元素
      • 交集&,并集|
      • 应用场景
  • 四、字典
    • 1.1、概念
      • 定义
      • 注意事项
    • 1.2、常见操作
      • 查看元素
      • 修改元素
      • 添加元素
      • 删除元素
      • 其他操作
    • 1.3、字典应用场景

一、元组(Turple)

1.1、概念

定义

元组名 = (元素1,元素2,元素3)

注意事项

  1. 使用小括号进行数据保存,所有元素包含在小括号内,元素与元素之间用“,”隔开
  2. 不同元素也可以是不同的数据类型
  3. 元素只包含一个元素的时候,末尾必须加“,”,否则返回的是唯一数据类型

1.2、常见操作

元组只支持查询操作,不支持增删改操作。

元组在Python中是一种不可变的、有序的数据容易。

tua = ()  # 定义空元组
print(tua, type(tua))  # () <class 'tuple'>
tua = (1)  # 元组包含一个元素时,末尾必须加“,”,否则返回的是<class 'int'>
print(tua, type(tua))  # () <class 'tuple'>

查询元素

  1. in:判断某个元素是否存在与元组中,存在就返回True,不存在则返回False。
  2. not in:判断某个元素是否存在与元组中,不存在就返回True,存在则返回False。
  3. count():统计指定元素在当前列表中出现的次数。
  4. index():返回指定元素所在位置的下标 ,如果查找的元素不存在则报错。
  5. len():求长度
li = ('a','b','b')
print('a' in li) # 判断某个元素是否存在与元组中
print(li.count('a'))
if 'a' in li:print(li.index('a')) #返回指定元素所在位置的下标

二、列表

1.1、概念

列表是最常用的 Python 数据类型,是处理一组有序项目的数据结构。也可以理解为他是一个可变的元组。或者说元组是一个不变的列表。

定义

列表名 = [元素1, 元素2, 元素3, …]

注意事项

  1. 列表的所有元素放在一对中括号[]中,并使用逗号分隔开
  2. 一个列表中的数据类型可以各不相同
  3. 通过下标快速查找对应元素
  4. 列表也可以进行切片操作
li = [1, 2, 'a', 'b']
print(li[2])  # 通过下标迅速查找对应元素
print(li[0:2])  # 对列表进行切片操作
for i in li:  # 列表迭代操作print(i)

1.2、常见操作

添加

append():在列表末尾追加元素(常用)
**extend():分散添加,将另外一个类型中的元素逐一添加 **
insert():在指定位置插入元素,指定位置若有元素则原有元素后移。效率没有append高

list = ['a', 'b']
list.append('c')  # 在列表后面添加元素
list.extend('de')  # 分散添加,将另外一个类型中的元素逐一添加
list.insert(3, 5)  # 在位置3+1的地方插入元素
list.insert(13, 'Py')  # 若位置大于列表长度插入末尾
print(list)  # ['a', 'b', 'c', 5, 'd', 'e', 'Py']

extend():插入的一定是可迭代对象,可迭代对象指的是元组、列表、集合、字典还有字符串。

修改

列表名[下标] = 值

li = [1, 2, 'a', 'b']
li[0] = 'Hello'  # 修改第一个元组
print(li)

查找

in:判断指定数据是否存在列表中,返回值为布尔
not in:判断指定数据是否存在列表中,返回值为布尔
index():返回指定元素所在位置的下标,如果查找的元素不存在报错
count():统计指定元素在当前列表中出现的次数

li = [1, 2, 3]
print(2 in li)          # True
print(2 not in li)      # False
print(4 in li)          # False
print(4 not in li)      # True
li = [1, 2, 3, 4, 2]
print(li.index(2))       # 1
# print(li.index(5))     # 报错,ValueError: 5 is not in list(值错误:5不在列表中)
print(li.count(2))       # 2,出现2次
print(li.count(5))       # 0,出现0次

删除

del :根据下标删除,超出下标范围就报错。
remove():根据元素的值进行删除,如果元素不存在则报错

li = [1, 2, 3, 4, 5]
del li[4]
print(li)                # [1, 2, 3, 4]
# del li[6]              # 报错,IndexError: list assignment index out of range(索引错误:列表下标超出范围)
del li # 删除整个列表
li = [1, 2, 3, 4, 3]
if 1 in li:li.remove(1)
print(li)  # [2, 3, 4, 3]

排序

sort():将列表按特定顺序重新排列,默认从小到大
reverse():倒序,将列表倒置,反过来

li = [2, 5, 3, 4, 1]
li.sort()
print(li)               # [1, 2, 3, 4, 5]
li1 = [2, 5, 3, 4, 1]
li1.reverse()
print(li1)              # [1, 4, 3, 5, 2]

列表推导式

[表达式 for 临时变量 in 列表]
根据列表生成指定需求的列表

li = []                  # 定义一个空列表
for i in range(1, 11):li.append(i)         # 把取出的i值放进列表中     
print(li)                # [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

列表嵌套

含义:一个列表中又有一个列表

li = ['a','b','c',['d','e','f']]     # ['d','e','f']是里面的列表

三、集合

1.1、概念

集合(set)是一种基本的数据结构,用于存储不重复的元素。

定义

集合名 = {元素1, 元素2, 元素3…}
集合和字典都是用{}表示,空字典用{}定义,空集合用set()定义。

集合的特点

  1. 无序:定义一个集合后,多次打印会发现顺序改变
  2. 唯一:集合的元素不重复
  3. 确定:集合中的元素必须可hash(散列)
    ** 常见的可hash类型:数值类型、字符串、元组 **
    ** 常见的不可hash类型:列表、字典、集合**

1.2、常见操作

添加元素

add():添加元素,添加的是一个整体

s2 = {1, 2, 3, 4}
print("原集合:", s2)  # 原集合: {1, 2, 3, 4}
s2.add(5)
print('添加后', s2)   # 添加后 {1, 2, 3, 4, 5}
s2.add(2)
print('添加后', s2)   # 添加后 {1, 2, 3, 4, 5},# 因为集合有自动去重功能,所以,当向集合内追加的数据是当前集合已有数据的话,则不进行任何操作。
# s2.add(5,6)        # 报错,一次只能添加一个元素
s2.add((5,6))        # 添加一个元组类型的元素
print('添加后', s2)   # 添加后 {1, 2, 3, 4, 5, (5, 6)}

update():把传入的元素拆分,逐个放入集合中

s2 = {1, 2, 3, 4}
print("原集合:", s2)  # 原集合: {1, 2, 3, 4}
# s2.update(567)     #报错
s2.update('567')
print('添加后', s2)   # 添加后 {1, 2, 3, 4, '5', '6', '7'}

删除元素

remove():选择删除的数字如果集合中有就删除,没有就会报错

s2 = {1, 2, 3, 4}
s2.remove(3)
# s2.remove(5)        # 报错(集合中没有元素5)
print("删除后:", s2)  # 删除后: {1, 2, 4}

discard():选择要删除的元素,有就会删除,没有则不会发生改变,不会进行操作

s2 = {1, 2, 3, 4}
print("原列表:", s2)  # 原列表: {1, 2, 3, 4}
s2.discard(3)
print('删除后:', s2)  # 删除后: {1, 2, 4}
s2.discard(7)
print('删除后:',s2)   # 删除后: {1, 2, 4}

交集&,并集|

交集&:表示共有的部分

a = {1, 2, 3, 4}
b = {3, 4, 5, 6}
print(a & b)          # {3, 4}

并集|:表示所有的都放一起,重复的不算

a = {1, 2, 3, 4}
b = {3, 4, 5, 6}
print(a | b)          # {1, 2, 3, 4, 5, 6}

应用场景

可以用于快速去重

四、字典

1.1、概念

键值对形式保存,键和值之间必须用:隔开,键值对之间用,隔开

定义

字典名 = {键1: 值1, 键2: 值2}

dic = {'name': 'bingbing', 'age': 18}
print(type(dic))           # <class 'dict'>

注意事项

字典中的键具备唯一性,但是值可以重复。

1.2、常见操作

查看元素

**变量名[键名] **
**变量名.get(键名) **

dic2 = {'name': 'python', 'name2': 'java'}
# print(dic2[2])       # 不可以根据下标,字典中没有下标,查找元素需要根据键名,键名相当于索引
print(dic2['name'])    # python
# print(dic2['tel'])   # 报错,键名不存在

修改元素

字典名 [键名] = 值

d = {'name': 'python', 'age': 18}
d['age'] = 20    # 列表通过下标修改,字典通过键名修改
print(d)         # {'name': 'python', 'age': 20}

添加元素

**字典名 [键名] = 值 **:键名存在就是修改,不存在则是新增

删除元素

**del:删除指定键值对,键名不存在就会报错 **
**删除整个字典 **
**clear():清空整个字典里面的东西,但保留了这个字典 **

d = {'name': '小明', 'age': 28}
del d['age']      
# del d['remark']      # 没有指定的键就会报错
print("删除后: ", d)   # 删除后:  {'name': '小明'}
del d # 删除整个字典
# print('删除后:' ,d)  # 报错

del 字典是删除整个字典,clear(),清空字典保留这字典。

其他操作

len():求长度
keys():返回字典里面包含所有键名
values():返回字典里面包含所有值
items():返回字典里面包含所有键值对(元组形式)的列表

p = {'name': 'PP', 'age': 33, 'qq': 123456}
print(len(p))  # 3,因为字典中有3对键值对
print(p.keys())  # dict_keys(['name', 'age', 'qq'])
print(p.values())  # dict_values(['PP', 33, 123456])
print(p.items())  # dict_items([('name', 'PP'), ('age', 33), ('qq', 123456)])

1.3、字典应用场景

使用多个键值对,存储描述一个物体的相关信息

http://www.dtcms.com/a/360169.html

相关文章:

  • 数据化管理是什么意思?企业该如何进行数据化管理
  • 介绍GSPO:一种革命性的语言模型强化学习算法
  • 【系统分析师】高分论文:论信息系统的安全与保密设计
  • 利用爬虫获取淘宝商品信息,参数解析
  • 大语言模型(LLM)简介与应用分享
  • Linux 系统忘记 root 密码?紧急救援方案与原理详解
  • 【STM32】外部中断(下)
  • kkfile一键部署-ubuntu版
  • Transformer中的核心概念III-Attention
  • 江协示例3.1LED闪烁,下载程序后要复位LED才点亮的设置。
  • 随时随地开发:通过 FRP 搭建从 Ubuntu 到 Windows 的远程 Android 调试环境
  • leetcode_48 旋转图像
  • DAY50打卡
  • Ansible配置文件与主机清单
  • Library cache lock常见案例分析(二)
  • 在Windows的wsl中如何以root登录Ubuntu
  • KMP 算法相关练习题
  • AI 重构内容创作:从文案生成到视频剪辑,创作者该如何与 AI 协同共生?
  • 用产品经理的思维,重构AI时代的增长Playbook
  • CatBoost vs XGBoost:两大Boosting框架的全面对比
  • 【AI智能体】Dify 实现自然语言转SQL操作数据库实战详解
  • 暄桐零基础书法入门课《写字旅行攻略》报名啦
  • 鸿蒙开发入门:ArkTS 运算符与分支循环全解析(含实战案例 + 避坑指南)
  • 常见的两栏布局实现方法
  • P2P技术应用:去中心化
  • Transformer架构三大核心:位置编码(PE)、前馈网络(FFN)和多头注意力(MHA)。
  • Reactor模式--单线程版本
  • HTML5国庆网站源码
  • Unity学习----【数据持久化】二进制存储(二)--文件流
  • 有关指针的认知盲区:指针大小,决定因素,指针变量