解决:TypeError: ‘dict_keys’ object does not support indexing


解决:TypeError: ‘dict_keys’ object does not support indexing



文章目录

  • 解决:TypeError: 'dict_keys' object does not support indexing
    • 背景
    • 报错问题
    • 报错翻译
    • 报错位置代码
    • 报错原因
    • 解决方法
      • 方法一:
      • 方法二:
      • 方法三:
      • 今天的分享就到此结束了



背景

在使用之前的代码时,报错:
Traceback (most recent call last):
File “xxx”, line xx, in
lst[0] = 2
TypeError: ‘dict_keys’ object does not support indexing



报错问题


Traceback (most recent call last):File "xxx", line xx, in <module>lst[0] = 2
TypeError: 'dict_keys' object does not support indexing

截图如下:

在这里插入图片描述



报错翻译

主要报错信息内容翻译如下所示:


Traceback (most recent call last):File "xxx", line xx, in <module>lst[0] = 2
TypeError: 'dict_keys' object does not support indexing

翻译:

追溯(最近一次通话):
文件“xxx”,第xx行,在中
lst[0]=2
TypeError:“dict_keys”对象不支持索引



报错位置代码


lst[0] = 2


报错原因

经过查阅资料,发现python3以后的版本改变了dict.keys的返回值,返回的是dict_keys对象,不支持索引值,当使用索引对其进行修改操作时会如题报错TypeError: ‘dict_keys’ object does not support indexing。

小伙伴们按下面的解决方法即可解决!!!



解决方法

要解决这个错误,这里总结了以下几个解决办法。

方法一:

先将set转为列表或字典后修改对应元素后,再转为set元组

正确的代码是:

t = {'surfacing': 'a','surfacings': 'b'}lst = t.keys()
lb = list(lst)
lb[0] = 2
b2 = set(lb)

方法二:

创建一个同结构的列表或字典,需要改的和不需要改的元组内的值对应放入list中,使用这个新的list即可

正确的代码是:

t = {'surfacing': 'a','surfacings': 'b'}lst = t.keys()
lb = list(lst)
lb[0] = 2

方法三:

使用集合对象中的方法来访问其中的元素。正确的示例代码如下:

my_set = {1, 2, 3}
result = next(iter(my_set))  # 使用迭代器访问集合对象中的元素
print(result)  # 输出 1

在上述代码中,我们使用 iter() 函数和 next() 函数来创建一个迭代器对象,并使用它来访问集合对象中的第一个元素。然后我们将结果存储在变量 result 中,并使用 print() 函数将其输出到屏幕上。

注意,此错误还可能发生在尝试将集合对象视为可切片(slicable)对象时。在这种情况下,解决方法通常是检查代码中的集合操作,确保正确使用集合对象中的方法。



今天的分享就到此结束了

欢迎点赞评论关注三连

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/340410.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2023年度产品评选!人人都是产品经理携手boardmix博思白板联合呈现!

榜单内容概览 2023年度产品评选活动&#xff0c;由人人都是产品经理发起&#xff0c;汇聚了众多引领行业风向的优秀产品&#xff0c;涵盖技术创新、数字化服务、AI效率、运营增长等多领域。这些杰出的产品经过多轮专业评委的严格评审与用户投票的热烈参与&#xff0c;最终脱颖…

IntelliJ IDEA Java 连接 mysql 配置(附完整 demo)

下载 MySQL 驱动 从MySQL官网下载JDBC驱动的步骤如下&#xff1a; 1&#xff09;访问MySQL的官方网站&#xff1a;MySQL 2&#xff09;点击页面上方的"DOWNLOADS"菜单&#xff1b; 3&#xff09;在下载页面&#xff0c;找到"MySQL Community (GPL) Downloads…

uniapp 设置底部导航栏

uniapp 设置原生 tabBar 底部导航栏。 设置底部导航栏 一、创建页面&#xff0c;一定要在 pages.json 文件中注册。 二、在 pages.json 文件中&#xff0c;设置 tabBar 配置项。 pages.json 页面 {"pages": [...],"globalStyle": {...},"uniIdRout…

RT-Thread 中断管理

中断管理 什么是中断&#xff1f;简单的解释就是系统正在处理某一个正常事件&#xff0c;忽然被另一个需要马上处理的紧急事件打断&#xff0c;系统转而处理这个紧急事件&#xff0c;待处理完毕&#xff0c;再恢复运行刚才被打断的事件。 生活中&#xff0c;我们经常会遇到这…

【操作系统】优化MBR程序:让MBR调用显存吧

一.显存、显卡以及显示器的概述 显卡用于连接CPU和显示器&#xff0c;我们调用显示器时&#xff0c;其实就是利用显卡提供的IO接口间接地对显示器进行操作&#xff0c;所以显卡也称之为显示适配器。接下来我们将优化之前写的MBR程序&#xff08;参考&#xff1a;【操作系统】BI…

【算法】基础算法001之双指针

&#x1f440;樊梓慕&#xff1a;个人主页 &#x1f3a5;个人专栏&#xff1a;《C语言》《数据结构》《蓝桥杯试题》《LeetCode刷题笔记》《实训项目》《C》《Linux》《算法》 &#x1f31d;每一个不曾起舞的日子&#xff0c;都是对生命的辜负 目录 前言 1.数组分块&#xf…

数字孪生+可视化技术 构建智慧新能源汽车充电站监管平台

前言 充电基础设施为电动汽车提供充换电服务&#xff0c;是重要的交通能源融合类基础设施。近年来&#xff0c;随着新能源汽车产业快速发展&#xff0c;我国充电基础设施持续增长&#xff0c;已建成世界上数量最多、服务范围最广、品种类型最全的充电基础设施体系。着眼未来新…

基于css实现动画效果

介绍 本文将会基于css&#xff0c;实现各种动画效果&#xff0c;接下来会从简单几个例子入手。 案例 三颗球 <!DOCTYPE html> <html lang"en"><head><meta charset"utf-8" /><title>React App</title><style>…

Unity编辑器扩展(外挂)

每日一句:未来的样子藏在现在的努力里 目录 什么是编译器开发 C#特性[System.Serializable] 特殊目录 命名空间 /*检视器属性控制*/ //添加变量悬浮提示文字 //给数值设定范围&#xff08;最小0&#xff0c;最大150&#xff09; //指定输入框&#xff0c;拥有5行 //默认…

js逆向第15例:猿人学第14题备而后动-勿使有变

文章目录 一、前言二、定位关键参数2.1 mz=如何得到?2.2 m=如何得到?2.3 变量c和e怎么来的?2.4 变量aa和bb怎么来的?2.5 函数E是什么?2.6 函数m5和函数gee是什么?三、代码实现四、参考文献一、前言 任务十四:抓取这5页的数字,计算加和并提交结果 此题难度还是很大,整…

工程送样!手把手教你用好广和通RedCap模组FG131FG132系列

2024年1月&#xff0c;广和通RedCap模组FG131&FG132系列已进入工程送样阶段&#xff0c;可为终端客户提供样片。广和通RedCap模组系列满足不同终端对5G速率、功耗、尺寸、成本的需求&#xff0c;全面助力RedCap技术的行业应用。 FG131&FG132系列基于骁龙X35 5G调制解调…

网络传输(TCP)

前言 我们tcpdump抓包时会看到除报文数据外&#xff0c;前面还有一段其他的数据&#xff0c;这段数据分为两部分&#xff0c;ip包头&#xff08;一般20字节&#xff09;和tcp包头&#xff08;一般20字节&#xff09;&#xff0c;一般这两个头长度和为40&#xff0c;我们直接跳…