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

【python与java的区别-03(集合、字典)】

一、Set

python:
集合(set)是一个无序的不重复元素序列

集合中的元素不会重复,并且可以进行交集、并集、差集等常见的集合操作。

可以使用大括号 { } 创建集合,元素之间用逗号 , 分隔, 或者也可以使用 set() 函数创建集合。

在Java中Set也是无序不重复的,如果想保证有序可以用LinkHashSet,不关心元素的顺序,那么HashSet是一个很好的选择,因为它提供了最快的查找速度。

set1 = {1, 2, 3, 4}            # 直接使用大括号创建集合
set2 = set([4, 5, 6, 7])      # 使用 set() 函数从列表创建集合

注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。

1、添加

s.add( x )

2、移除

s.remove( x )

3、判断元素是否在集合中存在

x in s

在Java中一般使用contains判断。

二、dict 字典

字典是另一种可变容器模型,且可存储任意类型对象。

字典的每个键值 key=>value 对用冒号 : 分割,每个对之间用逗号(,)分割,整个字典包括在花括号 {} 中 ,格式如下所示:

d = {key1 : value1, key2 : value2, key3 : value3 }

键必须是唯一的,但值则不必。

值可以取任何数据类型,但键必须是不可变的,如字符串,数字。

一个简单的字典实例:

tinydict1 = { 'abc': 456 }
tinydict2 = { 'abc': 123, 98.6: 37 }

1、创建空字典

创建空字典
使用大括号 { } 创建空字典:

# 使用大括号 {} 来创建空字典
emptyDict = {}# 打印字典
print(emptyDict)# 查看字典的数量
print("Length:", len(emptyDict))# 查看类型
print(type(emptyDict))
{}
Length: 0
<class 'dict'>

2、访问字典里的值

#!/usr/bin/python3tinydict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}print ("tinydict['Name']: ", tinydict['Name'])
print ("tinydict['Age']: ", tinydict['Age'])

以上实例输出结果:

tinydict['Name']:  Runoob
tinydict['Age']:  7

2、修改字典

向字典添加新内容的方法是增加新的键/值对,修改或删除已有键/值对如下实例:

#!/usr/bin/python3tinydict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}tinydict['Age'] = 8               # 更新 Age
tinydict['School'] = "菜鸟教程"  # 添加信息print ("tinydict['Age']: ", tinydict['Age'])
print ("tinydict['School']: ", tinydict['School'])

以上实例输出结果:

tinydict['Age']:  8
tinydict['School']:  菜鸟教程

3、删除字典元素

能删单一的元素也能清空字典,清空只需一项操作。

显式删除一个字典用del命令,如下实例:

#!/usr/bin/python3tinydict = {'Name': 'Runoob', 'Age': 7, 'Name': '小菜鸟'}print ("tinydict['Name']: ", tinydict['Name'])

4、注意事项

1)不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住,如下实例:

#!/usr/bin/python3tinydict = {'Name': 'Runoob', 'Age': 7, 'Name': '小菜鸟'}print ("tinydict['Name']: ", tinydict['Name'])

2)键必须不可变,所以可以用数字,字符串或元组充当,而用列表就不行,如下实例:

#!/usr/bin/python3tinydict = {['Name']: 'Runoob', 'Age': 7}print ("tinydict['Name']: ", tinydict['Name'])

5、对比

Java中字典的获取和python不一样。可以直接通过get(key)获取。新增put(key,value),删除某一个key可以用remove,并且他会返回对应的value

总结:
(1)Java集合只能存取固定的类型,然而在python中更灵活
(2)python只有序列有下标,集合数据是无序的,所以不支持下标
(3)列表、元组、字典、集合的对比
在这里插入图片描述
可变和不可变
1、首先从变量在内存中的存储说起
在这里插入图片描述
在内存地址不变的情况下,value值不变就是不可变类型。
如果value值可变就是可变类型
在这里插入图片描述

相关文章:

【python与java的区别-03(集合、字典)】

一、Set python: 集合&#xff08;set&#xff09;是一个无序的不重复元素序列。 集合中的元素不会重复&#xff0c;并且可以进行交集、并集、差集等常见的集合操作。 可以使用大括号 { } 创建集合&#xff0c;元素之间用逗号 , 分隔&#xff0c; 或者也可以使用 set() 函数…...

Java继承

目录 一、继承概念 二、语法格式 三、类型及特性 四、关键字 4.1. super 4.2. super与this指针 4.3 final 关键字 一、继承概念 继承(inheritance)机制&#xff1a;是面向对象程序设计使代码可以复用的最重要的手段&#xff0c;它允许程序员在保持原有类特 性 的基础上进…...

Kafka集群搭建的两种方式

目录 1. 依赖Zookeeper搭建集群 1. 下载Kafka二进制文件 2. 更改kafka配置 3. 启动Zookeeper集群和Kafka集群 4. 验证集群 1.创建主题 2. 检查主题是否存在 3. 创建生产者生产数据 4. 创建消费者消费数据 5. 检查Zookeeper中Kafka集群的元数据 2. 不依赖Zookeeper搭…...

两种变量初始化方法的区别

1. CarriageEntity carriageEntity new CarriageEntity()和 null的区别 1.1 CarriageEntity carriageEntity new CarriageEntity(); 初始化&#xff1a;这行代码创建了一个新的 CarriageEntity 对象&#xff0c;并将其引用赋值给 carriageEntity 变量。对象状态&#xff…...

群晖把硬盘共享给win10(虚拟机或物理机)的两种办法

1. 通过SMB共享 NAS地址&#xff1a;192.168.3.100 打开“此电脑”&#xff0c;在win10地址栏输入 \192.168.3.100\video&#xff0c;提示输入用户名、密码。在video文件夹右击&#xff0c;点击“映射网络驱动器” 在win10电脑上&#xff0c;复制文件到T盘上&#xff0c;在T盘…...

Java-Web面试题汇总

一、TCP 和 UDP 的区别 在网络通信中&#xff0c;TCP&#xff08;Transmission Control Protocol&#xff0c;传输控制协议&#xff09;和 UDP&#xff08;User Datagram Protocol&#xff0c;用户数据报协议&#xff09;是两种常见的协议&#xff0c;它们在多个方面存在显著差…...

数字化技术分别有哪些,数字化技术特点和优势是什么?

​随着企业数字化进程的加速&#xff0c;人工智能、工业互联网、低代码等底层技术正全面重塑企业运营生产体系&#xff0c;推动新的生产要素、研发范式和商业模式的建立。 这个变革过程不仅是对原有制造体系的颠覆&#xff0c;而且会影响各行各业的所有细分行业和产业链价值链…...

微服务CI/CD实践(一)环境准备及虚拟机创建

微服务CI/CD实践系列&#xff1a; 微服务CI/CD实践&#xff08;一&#xff09;环境准备及虚拟机创建 微服务CI/CD实践&#xff08;二&#xff09;gitlabs部署 微服务CI/CD实践&#xff08;三&#xff09;nexus3部署 微服务CI/CD实践&#xff08;四&#xff09;数据库,redis,n…...

【SpringBoot】优化慢启动应用的用户体验

通过深入分析SpringBoot中WebServer的启动流程&#xff0c;插入自定义的Loading页面展示逻辑&#xff0c;优化软件使用时的用户体验。 背景 Java本身的特点&#xff0c;再加上开发人员能力差&#xff0c;软件开发工程化程度低等等问题&#xff0c;经过一段时间的迭代之后&…...

String str=“i“ 与 String str=new String (“i“) 一样吗?

String str"i" 与 String strnew String ("i") String str"i" 这种形式声明了一个 String 对象&#xff0c;其中 "i" 字符串字面量直接赋值给 str。在 Java 中&#xff0c;字符串字面量会自动放入字符串常量池中&#xff0c;这是一个…...

【数据结构】二叉树链式结构的实现

前置声明&#xff1a;在学习二叉树的基本操作前&#xff0c;需先要创建一棵二叉树&#xff0c;然后才能学习其相关的基本操作。由于现在大家对二叉树结构掌握还不够深入&#xff0c;为了降低大家学习成本&#xff0c;此处手动快速创建一棵简单的二叉树&#xff0c;快速进入二叉…...

如何有效找到目标客户群体?

在激烈的市场竞争中&#xff0c;找到并锁定目标客户群体是企业成功的关键。以下是几种有效的策略&#xff0c;帮助您精准定位并吸引目标客户。 1. 明确市场定位与客户画像 首先&#xff0c;企业需要明确市场定位&#xff0c;并绘制详细的客户画像&#xff0c;包括年龄、性别、…...

机器学习-混淆矩阵

文章目录 一、混淆矩阵1.混淆矩阵简介2.混淆矩阵图列 二、混淆矩阵指标1. 准确率&#xff08;Accuracy&#xff09;2. 精确率&#xff08;Precision&#xff09;3. 召回率&#xff08;Recall&#xff09;4. F1分数&#xff08;F1 Score&#xff09; 三、总结 一、混淆矩阵 1.混…...

数据结构----栈

一丶概念 只能在一端进行插入和删除操作的线性表&#xff08;又称为堆栈&#xff09;&#xff0c;进行插入和删除操作的一端称为栈顶&#xff0c;另一端称为栈底 二丶特点 先进后出 FILO first in last out 后进先出 LIFO last in first out 三丶顺序栈 逻辑结构&…...

STL六大组件

STL&#xff08;Standard Template Library&#xff0c;标准模板库&#xff09;是C标准库的一部分&#xff0c;提供了丰富且高效的数据结构和算法。STL主要由6大组件构成&#xff0c;分别是容器、算法、迭代器、适配器、仿函数和空间配置器。 容器&#xff08;Containers&#…...

【机器学习】CNN的数学基础

&#x1f308;个人主页: 鑫宝Code &#x1f525;热门专栏: 闲话杂谈&#xff5c; 炫酷HTML | JavaScript基础 ​&#x1f4ab;个人格言: "如无必要&#xff0c;勿增实体" 文章目录 CNN的数学基础1. 引言2. 卷积运算2.1 连续卷积2.2 离散卷积2.3 互相关 3. 激活函…...

最小路径和[中等]

优质博文&#xff1a;IT-BLOG-CN 一、题目 给定一个包含非负整数的m x n网格grid&#xff0c;请找出一条从左上角到右下角的路径&#xff0c;使得路径上的数字总和为最小。 说明&#xff1a;每次只能向下或者向右移动一步。 示例 1&#xff1a; 输入&#xff1a;grid [[…...

【题库】——数组 小鱼比可爱

#include<bits/stdc.h> using namespace std; int main() {int n,m,i;cin>>n;int arr[n]; for(i0;i<n;i) {int count 0;cin>>arr[i];for(mi;m>0;m--){if(arr[i]>arr[m])count;} cout<<count<<" "; } return 0; }...

基于飞腾平台的Hbase的安装配置

【写在前面】 飞腾开发者平台是基于飞腾自身强大的技术基础和开放能力&#xff0c;聚合行业内优秀资源而打造的。该平台覆盖了操作系统、算法、数据库、安全、平台工具、虚拟化、存储、网络、固件等多个前沿技术领域&#xff0c;包含了应用使能套件、软件仓库、软件支持、软件适…...

【springboot】springboot接口参数全局解密,解决request内容修改后如何重新设置回去的问题

文章目录 核心思路spring&servelt基础核心接口类核心代码 body解密核心原理讲解get解密核心原理讲解get query请求讲解get pathVariables请求讲解 总结 本文不仅介绍了body内容修改后如何传递&#xff0c;也介绍了get请求 在修改内容后如何继续传递。 【原创作者 csdn: 孟秋…...

Python|GIF 解析与构建(5):手搓截屏和帧率控制

目录 Python&#xff5c;GIF 解析与构建&#xff08;5&#xff09;&#xff1a;手搓截屏和帧率控制 一、引言 二、技术实现&#xff1a;手搓截屏模块 2.1 核心原理 2.2 代码解析&#xff1a;ScreenshotData类 2.2.1 截图函数&#xff1a;capture_screen 三、技术实现&…...

[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解

突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 ​安全措施依赖问题​ GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...

Linux 文件类型,目录与路径,文件与目录管理

文件类型 后面的字符表示文件类型标志 普通文件&#xff1a;-&#xff08;纯文本文件&#xff0c;二进制文件&#xff0c;数据格式文件&#xff09; 如文本文件、图片、程序文件等。 目录文件&#xff1a;d&#xff08;directory&#xff09; 用来存放其他文件或子目录。 设备…...

DeepSeek 赋能智慧能源:微电网优化调度的智能革新路径

目录 一、智慧能源微电网优化调度概述1.1 智慧能源微电网概念1.2 优化调度的重要性1.3 目前面临的挑战 二、DeepSeek 技术探秘2.1 DeepSeek 技术原理2.2 DeepSeek 独特优势2.3 DeepSeek 在 AI 领域地位 三、DeepSeek 在微电网优化调度中的应用剖析3.1 数据处理与分析3.2 预测与…...

工业安全零事故的智能守护者:一体化AI智能安防平台

前言&#xff1a; 通过AI视觉技术&#xff0c;为船厂提供全面的安全监控解决方案&#xff0c;涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面&#xff0c;能够实现对应负责人反馈机制&#xff0c;并最终实现数据的统计报表。提升船厂…...

Vue2 第一节_Vue2上手_插值表达式{{}}_访问数据和修改数据_Vue开发者工具

文章目录 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染2. 插值表达式{{}}3. 访问数据和修改数据4. vue响应式5. Vue开发者工具--方便调试 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染 准备容器引包创建Vue实例 new Vue()指定配置项 ->渲染数据 准备一个容器,例如: …...

如何为服务器生成TLS证书

TLS&#xff08;Transport Layer Security&#xff09;证书是确保网络通信安全的重要手段&#xff0c;它通过加密技术保护传输的数据不被窃听和篡改。在服务器上配置TLS证书&#xff0c;可以使用户通过HTTPS协议安全地访问您的网站。本文将详细介绍如何在服务器上生成一个TLS证…...

Linux-07 ubuntu 的 chrome 启动不了

文章目录 问题原因解决步骤一、卸载旧版chrome二、重新安装chorme三、启动不了&#xff0c;报错如下四、启动不了&#xff0c;解决如下 总结 问题原因 在应用中可以看到chrome&#xff0c;但是打不开(说明&#xff1a;原来的ubuntu系统出问题了&#xff0c;这个是备用的硬盘&a…...

三体问题详解

从物理学角度&#xff0c;三体问题之所以不稳定&#xff0c;是因为三个天体在万有引力作用下相互作用&#xff0c;形成一个非线性耦合系统。我们可以从牛顿经典力学出发&#xff0c;列出具体的运动方程&#xff0c;并说明为何这个系统本质上是混沌的&#xff0c;无法得到一般解…...

大模型多显卡多服务器并行计算方法与实践指南

一、分布式训练概述 大规模语言模型的训练通常需要分布式计算技术,以解决单机资源不足的问题。分布式训练主要分为两种模式: 数据并行:将数据分片到不同设备,每个设备拥有完整的模型副本 模型并行:将模型分割到不同设备,每个设备处理部分模型计算 现代大模型训练通常结合…...