我有一个带有浮点值的列表float_list = [0.2, 1.2, 1.5, 0.7, 0.9]
。
首先我在迭代 float_list 的值然后乘以这些值形成 2 ,在最后我要打印结果在列表中,所需结果必须为此[0.4, 2.4, 3.0, 1.4, 1.8]
但我得到的是 TypeError: 'float' object is not iterable
这是我的代码
我的代码
float_list = [0.2, 1.2, 1.5, 0.7, 0.9]
for i in float_list:
print([list_num*2 for list_num in i])
期望的结果
[0.4, 2.4, 3.0, 1.4, 1.8]
错误
Traceback (most recent call last):
File "F:/python-practise/for.py", line 3, in <module>
print([list_num*2 for list_num in i])
TypeError: 'float' object is not iterable
注意:我还尝试将 i 作为字符串 str(i) print([list_num*2 for list_num in str(i)])
但是在做所以我在我的控制台中得到了这个输出
['00', '..', '22']
['11', '..', '22']
['11', '..', '55']
['00', '..', '77']
['00', '..', '99']
现在我被困住请帮助我获得理想的结果。
答案 0 :(得分:1)
您正在混合循环和列表推导。在循环中,i
已经是列表中的单个元素,即数字。您应该 只使用循环...
float_list = [0.2, 1.2, 1.5, 0.7, 0.9]
for i in float_list:
print(i * 2)
... 或列表理解:
print([i * 2 for i in float_list])
答案 1 :(得分:0)
for i in float_list:
print([list_num*2 for list_num in i])
我将成为一个浮点数,因为浮点数在列表中。所以你不能迭代浮点数,因为它不是一个列表。所以“对于我的list_num会失败。
这样做:
float_list = [0.2, 1.2, 1.5, 0.7, 0.9]
print([list_num*2 for list_num in float_list])
答案 2 :(得分:0)
如果您有一个简单的列表(不是列表列表),您可以使用循环或列表推导,但不能同时使用。
删除
for i in float_list:
你很好。
答案 3 :(得分:0)
请注意,您有两个for
循环。你只需要一个。
>>> float_list = [0.2, 1.2, 1.5, 0.7, 0.9]
>>> new_list = [list_num*2 for list_num in float_list]
>>> print(new_list)
[0.4, 2.4, 3.0, 1.4, 1.8]
我建议您在打印时解压缩它:
>>> print(*new_list)
0.4 2.4 3.0 1.4 1.8
答案 4 :(得分:0)
内部列表理解导致错误,因为您在单个float
项目上应用for循环,即您无法迭代float
object =&gt;这是错误指示的内容。
解决方案:
使用列表理解:
>>> float_list
[0.2, 1.2, 1.5, 0.7, 0.9]
>>> print([list_num*2 for list_num in float_list])
[0.4, 2.4, 3.0, 1.4, 1.8]
或像这样的循环
>>> new_list=[]
>>> for i in float_list:
... new_list+=[i*2]
...
>>> new_list
[0.4, 2.4, 3.0, 1.4, 1.8]
>>>
我建议使用map()
将函数映射到列表的每个元素:
>>> float_list
[0.2, 1.2, 1.5, 0.7, 0.9]
>>> list(map(lambda x:x*2, float_list))
[0.4, 2.4, 3.0, 1.4, 1.8]
>>>
答案 5 :(得分:0)
我认为这会解决它
System.getProperty("user.name");
或
result = [2*i for i in float_list]
print(result)
希望它有所帮助。快乐编码:)
答案 6 :(得分:0)
我会分两步处理这个任务:
# Declare the variables
float_list = [ ] # your present array
float_double_array = [ ] # your to be new array
迭代当前列表 - 如下所示float_list,然后乘以2,然后将结果追加到float_double_array
for index_item in float_list:
double_item=index_item * 2
float_double_array.append(double_item)
现在您可以使用新的float_double_array及其索引值,如下所示。
for double_floats in float_double_array:
try:
print " ".join(double_floats) #handles python 2
except:
print (" ".join(double_floats)) #handles python 3
最后,有任何问题,请询问。