Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python TypeError:只能为列表分配iterable-值_Python_Python 3.x - Fatal编程技术网

Python TypeError:只能为列表分配iterable-值

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)

你能建议一种方法将变量的值应用到由变量定义的从元素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)
    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)]