我正在尝试创建一个列表,其中包含随机生成的颜色的字典。因此,例如,列表的第一个字典将是颜色0,其值为255、255、255。我收到“ color {x}”的语法错误,其中python表示应为整数或拼接,但不是字符串。删除颜色部分给我另一个错误,其中python表示set对象没有格式属性。
这是使用pygame 1.9.4和python 3.7,而我一般来说对python编程还是比较陌生的。我曾尝试弄乱“ color {x}”部分,但之前的thread具有类似的功能,因此,我只是复制了语法以查看是否可以使用它。
colors = []
colorLength = len(colors)
for x in range(3):
colors["color{x}".format(x)]= random.randint(0,255),
random.randint(0,255), random.randint(0,255)
#colors.append()
else:
print(colorLength)
我正在尝试使列表颜色容纳3个字典(目前,计划在工作时扩展列表),其中包含随机生成的颜色。
答案 0 :(得分:0)
您正在将list
与dictionary
混淆-列表就是...列表-可索引的事物集合。您需要一本字典-在 key 下存储一个 value 的字典。字典是由colors = {}
创建的。
另一个错误是使用带有命名参数的str.format()-您可以省略x或像这样修复它:
for xxx in range(3):
# x is the name inside the {x} and it should be replaced by xxx
colors["color{x}".format( x = xxx)] = ...
如果您只是使用
for xxx in range(3):
colors["color{}".format(xxx)] = ...
format
将在位置上替换。.第一个{}
占位符替换为1st
中的format( 1st, 2nd, ...)
值。
阅读:
固定代码:
import random
colors = {} # create empty dictionary
for x in range(3):
# random.choices creates k random values from the given iterable in one go
colors["color{}".format(x)] = random.choices(range(0,256), k =3)
print(colors)
输出:
{'color0': [189, 5, 3], 'color1': [57, 218, 56], 'color2': [64, 150, 255]}
Doku:
如果您真的需要元组,则可以使用tuple( random.choices(range(0,256), k =3) )
答案 1 :(得分:0)
如果我理解正确,您实际上想要一个元组字典。像这样:
import numpy as np
a = {i: tuple(np.random.randint(256, size=3)) for i in range(3)}
print(a)
{0: (65, 168, 140), 1: (193, 85, 66), 2: (28, 25, 7)}