TypeError: 'float' object is not iterable, Python list
11,594
I am guessing the issue is with the line -
spectrum_intensity[first].extend(spectrum_intensity[second][spectrum_mass[second].index(i)])
extend()
function expects an iterable , but you are trying to give it a float. Same behavior in a very smaller example -
>>> l = [1,2]
>>> l.extend(1.2)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'float' object is not iterable
You want to use .append()
instead -
spectrum_intensity[first].append(spectrum_intensity[second][spectrum_mass[second].index(i)])
Same issue in the next line as well , use append()
instead of extend()
for -
spectrum_mass[first].extend(i)
Author by
Syd
Updated on June 16, 2022Comments
-
Syd almost 2 years
I am writing a program in Python and am trying to extend a list as such:
spectrum_mass[second] = [1.0, 2.0, 3.0] spectrum_intensity[second] = [4.0, 5.0, 6.0] spectrum_mass[first] = [1.0, 34.0, 35.0] spectrum_intensity[second] = [7.0, 8.0, 9.0] for i in spectrum_mass[second]: if i not in spectrum_mass[first]: spectrum_intensity[first].extend(spectrum_intensity[second][spectrum_mass[second].index(i)]) spectrum_mass[first].extend(i)
However when I try doing this I am getting
TypeError: 'float' object is not iterable
on line 3.To be clear,
spectrum_mass[second]
is a list (that is in a dictionary, second and first are the keys), as isspectrum_intensity[first]
,spectrum_intensity[second]
andspectrum_mass[second]
. All lists contain floats.