python中的键不允许重复_在python中使用重复键字典

2023-11-12

在python中使用重复键字典

我有以下列表,其中包含具有不同值的重复的汽车登记号码。 我想把它转换成一个字典,接受这个汽车登记号码的多个键。 到目前为止,当我尝试将列表转换为字典时,它消除了其中一个键。 有人可以告诉我如何使用重复的键字典列表是:

EDF768, Bill Meyer, 2456, Vet_Parking TY5678, Jane Miller, 8987, AgHort_Parking GEF123, Jill Black, 3456, Creche_Parking ABC234, Fred Greenside, 2345, AgHort_Parking GH7682, Clara Hill, 7689, AgHort_Parking JU9807, Jacky Blair, 7867, Vet_Parking KLOI98, Martha Miller, 4563, Vet_Parking ADF645, Cloe Freckle, 6789, Vet_Parking DF7800, Jacko Frizzle, 4532, Creche_Parking WER546, Olga Grey, 9898, Creche_Parking HUY768, Wilbur Matty, 8912, Creche_Parking EDF768, Jenny Meyer, 9987, Vet_Parking TY5678, Jo King, 8987, AgHort_Parking JU9807, Mike Green, 3212, Vet_Parking

我试过的代码是:

data_dict = {} data_list = [] def createDictionaryModified(filename): path = "C:\Users\user\Desktop" basename = "ParkingData_Part3.txt" filename = path + "//" + basename file = open(filename) contents = file.read() print contents,"\n" data_list = [lines.split(",") for lines in contents.split("\n")] for line in data_list: regNumber = line[0] name = line[1] phoneExtn = line[2] carpark = line[3].strip() details = (name,phoneExtn,carpark) data_dict[regNumber] = details print data_dict,"\n" print data_dict.items(),"\n" print data_dict.values()

Python字典不支持重复键。 一种方法是在字典中存储列表或集合。

一个简单的方法来实现这是通过使用defaultdict :

from collections import defaultdict data_dict = defaultdict(list)

所有你需要做的是replace

data_dict[regNumber] = details

data_dict[regNumber].append(details)

你会得到一个列表字典。

你可以改变python内置types的行为。 对于你的情况,真的很容易创build字典的子类,将自动存储在同一个键下的列表中重复的值:

class Dictlist(dict): def __setitem__(self, key, value): try: self[key] except KeyError: super(Dictlist, self).__setitem__(key, []) self[key].append(value)

输出例子:

>>> d = dictlist.Dictlist() >>> d['test'] = 1 >>> d['test'] = 2 >>> d['test'] = 3 >>> d {'test': [1, 2, 3]} >>> d['other'] = 100 >>> d {'test': [1, 2, 3], 'other': [100]}

你不能有一个与定义重复键的字典! Insted,你可以使用一个单一的键,作为值,有一个关键的元素列表。

所以你可以按照以下步骤操作:

看看当前元素(你的初始设置)键是否是最后一个字典。 如果是,请转到步骤3

用键更新字典

附加到字典[键]列出新的值

重复[1-3]

字典中不能有重复的键。 怎么样的列表字典?

for line in data_list: regNumber = line[0] name = line[1] phoneExtn = line[2] carpark = line[3].strip() details = (name,phoneExtn,carpark) if not data_dict.has_key(regNumber): data_dict[regNumber] = [details] else: data_dict[regNumber].append(details)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python中的键不允许重复_在python中使用重复键字典 的相关文章

  • 2024年java面试--mysql(3)

    系列文章目录 2024年java面试 一 spring篇 2024年java面试 二 spring篇 2024年java面试 三 spring篇 2024年java面试 四 spring篇 2024年java面试 集合篇 2024年java
  • Photoshop 之利用 "调整边缘" 抠图

    目录 1 首先 看如下图像 人物图像包含很多头发 2 利用魔棒工具 选中选区 并选择 反向 选中人物图像 3 选择选项栏中的 调整边缘 或者菜单栏中的选择 调整边缘 4 利用调整边缘 修复毛发中的空白部分扣除 5 通过拷贝的图层 将图像抠出
  • 如何安装和使用Android夜神模拟器

    夜神模拟器 是全新一代的安卓模拟器 能够让你在电脑上畅玩手机游戏 与传统安卓模拟器相比 基于Android7 1内核 同时向下兼容Android5 1内核以及X86 AMD 具备极高的兼容性和稳定性 加上超高帧率模式 能够在电脑上运行高性能
  • Antd的Upload+fetch+FormData上传Excel文件请求方式?

    let formData new FormData formData append file fileList 0 fetch 接口名称 method POST headers Content Type multipart form dat
  • 平均年薪60.8万,程序员拿下这个证书有多吃香?!

    互联网行业竞争一年比一年严峻 随着互联网的发展和进步 很多人都是想要进军到编程行业中去 作为工程师的我们唯有不停地学习 不断的提升自己才能保证自己的核心竞争力 打破内卷 从而拿到更好的薪水 进入心仪的企业 前些天 我的程序员哥们和我说 他转
  • Pycharm关闭项目卡住怎么办?

    突然有一天创建新项目的时候 Pycharm卡在了关闭项目上 通过网上查阅资料 不断试探 我最终这样解决了 1 在设置中的自然语言中添加了中文 2 更新了Pycharm由2023 1到2023 4 3 在文件中关闭项目 然后等待了较长时间后
  • Sentinel分布式系统的流量防卫兵

    Sentinel 是什么 官网 https github com alibaba Sentinel wiki 介绍 随着微服务的流行 服务和服务之间的稳定性变得越来越重要 Sentinel 以流量为切入点 从流量控制 熔断降级 系统负载保护
  • ae2020不支持的视频驱动程序_AE 2020版本安装提示系统兼容性报告怎么解决?

    AE 2020版本安装提示系统兼容性报告怎么解决 很多设计师朋友会遇到这样的问题 安装完AE2020版本之后 打开软件 提示这样的信息显示系统兼容性报告可这样解决 快进来学习吧 系统是WIN10的 64位 点击不理会 可以打开软件 但是作为
  • ​LeetCode刷题实战26:删除排序数组中的重复项

    算法的重要性 我就不多说了吧 想去大厂 就必须要经过基础知识和业务逻辑面试 算法面试 所以 为了提高大家的算法能力 这个公众号后续每天带大家做一道算法题 题目就从LeetCode上面选 今天和大家聊的问题叫做 删除排序数组中的重复项 我们先
  • vite 配置自动补全文件的后缀名

    vite 不建议自动补全 文件的后缀名的 const Home gt import views Home vue 文件是必须要加上 vue 的后缀名的 如果 想要像 webpack 一样的不用写 可以在vite config js中配置如下
  • windows server 2012 R2 安装mysql(一)

    windows server 2012 R2 安装mysql 一 最近遇到一个要做app的朋友 朋友想要做一个简单的线上APP app 的功能久不介绍了 笔者决定采用windows server 2012 r2 做应用服务器 数据库采用my
  • 疫情防控数据可视化平台的设计与实现 计算机专业毕业设计源码87063

    摘要 信息化社会内需要与之针对性的信息获取途径 但是途径的扩展基本上为人们所努力的方向 由于站在的角度存在偏差 人们经常能够获得不同类型信息 这也是技术最为难以攻克的课题 针对疫情防控数据可视化平台等问题 对如何通过计算机疫情防控数据可视化
  • 在Qt创建的UI中放一个显示点云的窗口(PCL+QT5)

    1 首先在Qt Designer创建UI后 拖一个Widget窗口出来 2 在对象查看器中右击该Widget 选择提升窗口部件 如下操作 3 把UI转出来放在VS项目中 其中你的UI代码头文件会自带QVTKOpenGLNativeWidge
  • 非常实用: 2.4G天线设计指南(赛普拉斯工程师力作)

    前言 为了方便查看博客 特意申请了一个公众号 附上二维码 有兴趣的朋友可以关注 和我一起讨论学习 一起享受技术 一起成长 转载自 gt 非常实用 2 4G天线设计指南 赛普拉斯工程师力作 微信公众号 lt lt 射频百花潭 gt gt 本文
  • 分享 7 个 AI 优质开源项目!文本生成、自动化数据搜集...

    项目一 nanodet 超快速轻量级无锚物体检测模型 项目地址 https github com RangiLyu nanodet 项目特点 超轻量 模型文件只有 980KB INT8 或 1 8MB FP16 超快 在移动 ARM CPU
  • npm 实现原理

    输入 npm install 命令并敲下回车后 会经历如下几个阶段 以 npm 5 5 1 为例 1 执行工程自身 preinstall 当前 npm 工程如果定义了 preinstall 钩子此时会被执行 2 确定首层依赖模块 首先需要做
  • 基于STM32的脉搏心率检测仪(OLED可以实时显示脉冲波形)

    设计完整 功能可全部实现 有完整报告文档说明 程序以及pcb文件 可作为 课程设计 STM32实践学习 电子制作等 禁止转载 以及用于其他商业用途 B站对应讲解心率传感器项目链接 设计所实现的功能 利用STM32的AD采集功能实时采集心率传
  • 从零开始深度学习0521——keras基本知识+GAP理解

    Keras 中经常可以看到 K image data format channels first 深度学习中 Flatten层 的作用 lt GAP Flatten层的实现在Keras layers core Flatten 类中 作用 F
  • Version of Delve is too old for this version of Go【Goland Debug】报错

    最近升级了 Go 到 1 14 发现使用 Goland debug 程序的时候报错了 完整的报错信息如下 API server listening at 127 0 0 1 53951 Version of Delve is too old

随机推荐

  • 【EPS32S3学习笔记】OPENCV应用于热成像的插值运算

    系列文章目录 提示 这里可以添加系列文章的所有文章的目录 目录需要自己手动添加 例如 第一章 Python 机器学习入门之pandas的使用 提示 写完文章后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 系列文章目录 前言 一
  • Centos7 将Arm环境(海思3559A)的目录挂载到Centos7目录下

    将Arm环境 海思3559A 的目录挂载到Centos7某个目录下 将Centos7 下Qt arm编译器编译的程序放到这个目录下 然后在Arm环境 海思3559A 下执行程序 以下是具体步骤 一 编译的机器 1 etc exports文件
  • ChatGPT 4.0大升级,能替代留学中介吗?

    ChatGPT4 0发布了 在之前轰动世界版本的基础上又有了大幅度升级 根据官方介绍 它的输入可以是文字 上限2 5万字 还可以是图像 是一个超大的多模态模型 越来越多的人开始好奇这个东西到底能用来做什么 会对我们的未来产生什么样的影响 关
  • STM32 DMA 学习笔记(一)

    一 功能介绍 DMA 传输将数据从一个地址空间复制到另外一个地址空间 不需要CPU干涉 传统的数据传输 地址A gt CPU gt 地址B DMA数据传输 地址A gt 地址B 这样也就为CPU减负了 二 STM32DMA 含有两个通道 D
  • 基于微信小程序的电器维修系统设计与实现(源码+lw+部署文档+讲解等)

    前言 博主介绍 全网粉丝10W CSDN特邀作者 博客专家 CSDN新星计划导师 全栈领域优质创作者 博客之星 掘金 华为云 阿里云 InfoQ等平台优质作者 专注于Java 小程序技术领域和毕业项目实战 精彩专栏 推荐订阅 2023 20
  • 2018 10-708 (CMU) Probabilistic Graphical Models {Lecture 23} [Applications in Computer Vision (cont...

    unfinished 转载于 https www cnblogs com ecoflex p 10265304 html
  • QT 信号槽返回值

    一 方法 获取信号槽返回值的方法有三种 1 通过形参的方式 传递引用或者指针 未写例子 2 直接在信号发出位置获取返回值 下面有例子 3 通过QMetaObject invokeMethod方法 具体使用可以参考QT的帮助文档或者看下面的代
  • 【PyTorch】Chapter1:expected dtype Double but got dtype Float

    1 简介 最近跟着 Dive into DL PyTorch 一书的代码写 出现了double类型的数据和float类型的数据之间相互冲突的问题 有时需要double类型但输入的是float类型 有时又需要float类型却得到double类
  • java 码点与代码单元的区分 及 代码单元的数量和码点的数量

    java字符串由char值序列组成 char的数据类型是一个采用Unicode码点的代码单元 即 char数据类型是一个代码单元 任意Unicode字符都是一个码点 大多数常用的Unicode码点由一个char代码单元组成 辅助字符码点由两
  • c++ Unicode转UTF-8 & 宽字节转UTF8 & string转wstring & Utf8ToAnsi

    c 后台向网页传数据中文乱码 unicode的char字符串直接转UTF 8的char 网上找到有unicode转utf 8的代码 但是参数用的是wchar t的 不能直接用稍微改造一下 WideCharToMultiByte 函数需要Wi
  • Evidential Deep Learning for Open Set Action Recognition CVPR2021开放集识别论文解读

    5 Bao W Yu Q Kong Y Evidential Deep Learning for Open Set Action Recognition C Proceedings of the IEEE CVF International
  • 制作长方形表贴焊盘

    第一步 打开Pad Designer 第二步 点击File new 创建一个焊盘文件 第三步 修改小数点后几位 一般是三位 第四步 勾选Single layer 第五步 点击建构的框架 然后选择焊盘形状 Rectangle 矩形 然后填写宽
  • 4月24日云栖精选夜读

    点击订阅云栖夜读周刊 轻松筹首创了 大病救助 模式 帮助了众多病患在第一时间解決了医疗资金等问题 为了从源头解决了医疗资金问题 而在轻松筹这样全球5 5亿用户信赖的大病筹款平台的背后 是日益增长的各种数据 面对这样数据量所造成的巨大挑战 阿
  • 安装PyTorch-Lightning踩坑

    官网地址 PyTorch PyTorch Lightning 安装PyTorch Lightning 1 不能直接使用pip install pytorch lightning 否则如下图会直接卸载掉你的torch而安装cpu版本的torc
  • 这些有趣的AI人脸特效背后,腾讯云都做了什么?

    导语 深受泛娱乐场景喜爱的人脸特效产品 在不断的尝试和拓展中已挖掘出很多火爆的玩法及积累了不少优秀落地案例 本文是对腾讯云高级工程师 李凯斌老师在 云加社区沙龙online 的分享整理 以人脸特效产品 人脸融合 人脸试妆包括试唇色和美颜 人
  • 后代,后裔 descendant offspring posterity progeny

    后代 后裔 descendant offspring posterity progeny 后代 后裔 descendant offspring posterity progeny posterity descendant 和 offspri
  • xp能ping通kali,而kali却ping不了winxp的解决方案

    今天天气不错 手机响了 学妹向我提问了一个问题 她的win xp能ping通linux kali 而linux kali却ping不了winxp 这个问题起初我以为是vmware 15版本的虚拟网卡乱掉了 等到问题解决的时候发现 大错特错
  • 【ESP-IDF】ESP32利用wifi联网(STA模式)

    1 AP和STA的含义 AP模式 Access Point模式 提供无线接入服务 允许其它无线设备接入 提供数据访问 STA模式 Station模式 类似于无线终端 sta本身并不接受无线的接入 它可以连接到AP设备 2 STA模式例程 官
  • 卫星安全组网认证论文详解

    文章 卫星安全组网认证关键技术研究 文章链接 卫星安全组网认证关键技术研究 中国知网 1 摘要 对象 双层卫星网络 通常由地球同步轨道卫星 GEO 和低地球轨道卫星 LEO 组成 其中GEO在通信中起到中继器的作用 能够提供广域覆盖区域 但
  • python中的键不允许重复_在python中使用重复键字典

    在python中使用重复键字典 我有以下列表 其中包含具有不同值的重复的汽车登记号码 我想把它转换成一个字典 接受这个汽车登记号码的多个键 到目前为止 当我尝试将列表转换为字典时 它消除了其中一个键 有人可以告诉我如何使用重复的键字典列表是