Python TypeError:只能为列表分配iterable-值
你能建议一种方法将变量的值应用到由变量定义的从元素6到结尾的列表中吗 也许我的代码可以更好地解释它(Python 3) 使用Python TypeError:只能为列表分配iterable-值,python,python-3.x,Python,Python 3.x,你能建议一种方法将变量的值应用到由变量定义的从元素6到结尾的列表中吗 也许我的代码可以更好地解释它(Python 3) 使用list.append(): 只能将iterable分配给切片;具有0个或多个值,而不是一个特定值的对象 我不会预先构建列表,然后替换所有内容;只要做: num_weighted = [ round(base_value * 1.8, 1) round(base_value * 1.6, 1) round(base_value * 1.5, 1)
list.append()
:
只能将iterable分配给切片;具有0个或多个值,而不是一个特定值的对象
我不会预先构建列表,然后替换所有内容;只要做:
num_weighted = [
round(base_value * 1.8, 1)
round(base_value * 1.6, 1)
round(base_value * 1.5, 1)
round(base_value * 1.3, 1)
round(base_value * 1.15, 1)
round(base_value * 1.1, 1)
]
并使用带有生成器的list.extend()
使用pts\u alloc
扩展列表:
num_weighted.extend(pts_alloc for _ in range(range_size - 6))
现在您有了一个长度
范围\u大小的列表
您可以创建一个pts\u alloc
列表,并将其分配给切片,如下所示
num_weighted[6:] = [pts_alloc for i in range(len(num_weighted) - 6)]
为了说明我的示例可能不清楚,我希望将pts_alloc应用于从第6个条目到最后的每个列表条目(由范围大小-6定义)。列表中只有6个值,
pts_alloc
是一个数字,在这种情况下,.append()
是将单个值添加到列表中的正确方法。@sayth:但是如果需要添加相同的值,重复,则必须提供足够重复次数的值,以填充正确的计数。Python没有为列表设置预设的大小。@MartijnPieters好的,我只是想弄清楚,我的列表有12个条目,而不是6个条目,此时我正试图用相同的值覆盖6的值:(到最后)啊,是的。但是为什么要预先填充一个列表,然后替换每个值呢?更简单的是:num\u weighted[6:][pts\u alloc]*(len(num\u weighted)-6)
@thefourtheye:同样的引用是什么?
num_weighted.extend(pts_alloc for _ in range(range_size - 6))
num_weighted[6:] = [pts_alloc for i in range(len(num_weighted) - 6)]