已解决:TypeError: new(): data must be a sequence (got map)

原文链接
代码中:word_seq_lengths = torch.LongTensor(map(len, words))
出现报错:TypeError: new(): data must be a sequence (got map)
原因:
map() 会根据提供的函数对指定序列做映射。
语法:
map() 函数语法:map(function, iterable, …)
参数:
function – 函数
iterable – 一个或多个序列
第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表。
返回值:
Python 2.x 返回列表。
Python 3.x 返回迭代器。
改正方法:
通过list(map())将map转换为list

word_seq_lengths = torch.LongTensor(list(map(len, words)))
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 这个错误提示意思是:类型错误:new()函数的数据必须是一个序列(得到的是浮点数)。 这个错误通常出现在使用Python中的某些函数时,传入的参数类型不正确。在这个错误中,传入的参数应该是一个序列,但是实际传入的是一个浮点数,导致了类型错误。要解决这个问题,需要检查传入的参数类型是否正确,并且确保传入的参数符合函数的要求。 ### 回答2: 这个错误信息表示在创建一个对象时,要求的数据必须是一个序列,但是实际输入的是浮点数。在Python中,序列是由一系列元素按照顺序组成的数据结构,例如列表、元组、字符串等。而浮点数则是表示实数的一种数据类型。 常见触发这个错误的代码示例包括: ```python my_list = float(3.14) my_tuple = [5, 6, 7] my_dict = dict(1=2, 3=4) my_set = set(1, 2, 3) obj = MyClass(my_list) # TypeError: data must be a sequence (got float) obj = MyClass(my_dict) # TypeError: data must be a sequence (got dict) ``` 在这些代码中,传入类的构造函数的参数不是序列类型(如列表、元组、字符串等),而是浮点数、字典类型、集合类型等。因此会触发 "Type Error" 异常。 有时候我们可以使用一个序列类型的数组包装浮点数,例如: ```python my_float = 3.14 obj = MyClass([my_float]) # 将浮点数包装在一个列表中 ``` 这种处理方式可以避免触发 "Type Error" 异常。 在实际编程中,我们需要认真检查代码的输入参数类型,以避免此类错误的发生。可以运用 Python 自带的 type() 函数获取数据类型,然后根据需要进行类型转换。 ### 回答3: 这个错误信息是Python中的一个Type Error,通常出现在使用新建一个数据类型的时候。在这个错误信息中,错误的具体提示是“data must be a sequence (got float)”。这意味着在使用new()函数时,传入的数据类型应该是序列,但实际传入的却是一个浮点数。 可能出现这个错误的情况有很多种,下面列举几个常见的情况: 1. 在使用new()函数创建一个序列的时候,传入的数据类型是单个浮点数,而不是一个序列。比如,下面的代码就会出现这个错误: new_list = list(new(5.0)) 这里的5.0是一个浮点数,应该用一个包含5.0的列表代替。 2. 在使用new()函数创建一个序列的时候,传入的数据类型是其他类型的对象,而不是一个序列。比如,下面的代码就会出现这个错误: new_list = list(new("abc")) 这里传入的是一个字符串类型的对象,应该使用一个包含该字符串的列表代替。 3. 在某些情况下,这个错误可能出现在使用numpy库时,例如在创建一个numpy数组时。在这种情况下,要确保传入的数据类型是一个包含浮点数的序列,而不是单个浮点数。比如,下面的代码就会出现这个错误: import numpy as np arr = np.array(new(5.0)) 正确的做法是传入一个包含5.0的列表,例如: arr = np.array([5.0]) 总之,当遇到这个错误时,处理的方法是检查代码中传入new()函数的数据类型,确保它是一个序列而不是单个的浮点数或其他类型的对象。如果需要将单个的浮点数转换成一个包含该浮点数的序列,可以使用列表或numpy库中的一些函数。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值