如何解决TypeError:' float'对象不可迭代

时间:2018-04-24 09:48:02

标签: python python-3.x

我如何转移

A = [0.12075357905088335, -0.192198145631724, 0.9455373400335009, -0.6811922263715244, 0.7683786941009969, 0.033112227984689206, -0.3812622359989405] 

A = [[0.12075357905088335], [-0.192198145631724], [0.9455373400335009], [-0.6811922263715244], [0.7683786941009969], [0.033112227984689206], [-0.3812622359989405]]

我尝试了下面的代码,但发生了错误:

new = []
for i in A:
    new.append.list(i)
  

TypeError: 'float' object is not iterable

有人可以帮助我吗?

4 个答案:

答案 0 :(得分:7)

TL;博士

试试list comprehension,这样更方便:

new = [[i] for i in A]

解释

您收到TypeError,因为您无法将list()函数应用于float类型的值。 This function将iterable作为参数,float不是可迭代的。

另一个错误是你使用的是new.append._something而不是new.append(_something)appendlist对象的method,所以你应该提供一个项目添加为参数。

答案 1 :(得分:1)

你有一个错误,试试:

new = []
for i in A:
    new.append([i])

这是更美丽的解决方案:

new = [[i] for i in A]

答案 2 :(得分:1)

import re s = ' playsound3Dwhenpossible(soundspotpoint18, %$videos_sounds_path%/sounds/lavazza_-_auguri_cherubini__15_.mp3, true, false, -52.644483, 0.947368, 90, 1, spotpoint18);' x = re.split(r'(\()', s) 是一种需要参数的方法,例如list.append或者,在这种情况下new.append(i)

列表理解是一个更好的主意,请参阅@IvanVinogradov's solution

如果您对使用第三方库感到满意,请考虑new.append([i])以获取矢量化解决方案:

numpy

答案 3 :(得分:1)

我认为您使用的是这样的

my_data=b['dataset']['data'][0][1]
useful_data=[i[1] for i in my_data]

因此,在编译时会出现错误:

TypeError:“ float”对象不可迭代

仅尝试:

my_data=b['dataset']['data']

然后您将获取数据。