当前位置: 首页 > 面试题库 >

获取:TypeError:使用python 3.2.3时'dict_values'对象不支持索引

龙玄天
2023-03-14
问题内容

这是我的代码:

{names[i]:d.values()[i] for i in range(len(names))}

使用python 2.7.3时,这完全可以正常工作;但是,当我使用python 3.2.3时,出现错误提示'dict_values' objectdoes not support indexing。如何修改代码使其与3.2.3兼容?


问题答案:

在Python3中,dict.values()(以及dict.keys()和一起dict.items()返回view,而不是列表。请参阅此处的文档。因此,您需要将呼叫包装到dict.values()一个呼叫中,list例如:

v = list(d.values())
{names[i]:v[i] for i in range(len(names))}


 类似资料:
  • 问题内容: 当我运行该函数时,它会引发以下错误,这是为什么呢? 问题答案: 显然,您正在传递给函数。可能是用python2.x编写的(返回列表时)。使用python3.x时,返回一个行为更像a而不是a的对象。因此,无法对其进行索引。 解决方案是将(或简单地)传递给。

  • 问题内容: 我有这个查询: 我收到以下错误: some_id是一个整数,但我想选择具有some_id = 1的指标(或任何我决定放入变量的#)。 问题答案: 这会将参数转换为可索引的列表。假设您的方法像我想的那样工作,这应该工作。 发生错误是因为该方法中的某个地方,它可能试图遍历该输入或直接对其进行索引。可能是这样的: 通过使其成为列表(或可迭代的),您就可以像这样将其索引到第一个元素中。 您还可

  • 问题内容: 我正在查看一些代码,并尝试将其翻译为,但是我仍然停留在本节中。任何人都可以澄清出什么问题吗? 这是给出的错误: 问题答案: 在Python 3中,返回一个惰性序列对象-它不返回列表。无法重新排列范围对象中的元素,因此不能重新排列它。 改组之前将其转换为列表。

  • 问题内容: 我在python中编写一个简单的排序程序,遇到此错误。我想交换列表元素,但返回错误。我在下面附上错误和相关程序。 码: 问题答案: 计算“ 1,2,3”的结果为。正如您所发现的,元组是不可变的。处理前转换为列表。

  • 问题内容: 我尝试运行以下代码: 但是我在最后一行出现错误: 似乎我无法分配张量,如何解决? 问题答案: 通常,TensorFlow张量对象不可分配*,因此您不能在分配的左侧使用它。 做您想做的事情的最简单方法是构建张量的Python列表,并在循环结束时将它们在一起: *除对象外,使用etc.方法。但是,可能返回不支持此方法的对象。

  • 北京优锘科技有限公司 地址:北京市朝阳区酒仙桥路10号恒通国际商务园B23A 联系电话:400-666-9832 业务咨询:info@uino.com 售后服务:thingjs@uino.com