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

Python映射对象不可下标

淳于玺
2023-03-14
问题内容

为什么以下脚本会给出错误:

payIntList[i] = payIntList[i] + 1000 TypeError: 'map' object is not subscriptable

payList = []
numElements = 0

while True:
        payValue = raw_input("Enter the pay amount: ")
        numElements = numElements + 1
        payList.append(payValue)
        choice = raw_input("Do you wish to continue(y/n)?")
        if choice == 'n' or choice == 'N':
                         break

payIntList = map(int,payList)

for i in range(numElements):
         payIntList[i] = payIntList[i] + 1000
         print payIntList[i]

问题答案:

在Python 3中,map返回类型为的可迭代对象map,而不是可下标的列表,该列表允许您编写map[i]。要强制列出结果,请写

payIntList = list(map(int,payList))

但是,在许多情况下,您可以不使用索引来更好地编写代码。例如,使用列表推导:

payIntList = [pi + 1000 for pi in payList]
for pi in payIntList:
    print(pi)


 类似资料:
  • 我有一个不可变对象,它是使用组件映射的Hibernate持久化对象的成员。例如,对应于一个表,该表的字段类型为immutable: 在我的: 这不起作用,因为在运行时HiberNate抱怨没有和的设置器。有没有办法使用不可变对象作为HiberNate持久对象的组件? 跟进:我没有使用注释,而是使用。和都不是。

  • 我有一个对象,我正试图映射到。现在这个有一个名为的枚举,其中包含一些值。我想使用将它们映射到中的其他枚举值。以下是我到目前为止的代码: 当我尝试编译它时,我得到了错误:

  • 问题内容: 我正在制作一个用于数学的小程序(没有特殊原因,只是出于某种原因),并且遇到错误“ TypeError:’NoneType’对象无法下标。 我从未见过此错误,所以我不知道这意味着什么。 错误: 问题答案: 这应该是 该方法就位,并返回None。如果您希望某些东西不就地返回值,则可以使用 除了#1:请勿致电您的清单。那掩盖了内置列表类型。 除了#2:我不确定这行是做什么的: 简单吗 ?换句

  • 我使用此链接中的以下代码为我的一个数据模型类(JSON到JAXB模型的转换)添加自定义反序列化程序。 我想使用com。fasterxml。杰克逊。jaxrs。json。JacksonJaxbJsonProvider,用于其他数据模型的JSON序列化/反序列化。 JacksonJaxbJsonProvider的默认实现非常适合我的JAXB模型,将超类作为抽象类。但是,一旦我提供了自己的自定义Obje

  • 假设我有这样的映射: 现在,我需要将子列表映射到子列表,但它们都有相同的父对象。我希望这样做: 但不管用,有机会做吗?

  • 在对象(Object,也称实体Entity)、文档(Document)之间实现自动转换,是bugu-mongo的最核心功能,这能让你直接用面向对象的概念来操作MongoDB数据库,而不用去关心底层的数据库细节。 在这方面,bugu-mongo提供了: 注解: @Entity @Id @Property @Embed @EmbedList @Ref @RefList @Ignore @CustomC