keys = [1,2,3,5,6,7,8,9]
squares_dict = {key: None for key in keys}
def box_number(my_dict,xmax,ymax,xmin,ymin,key):
ra = Rectangle(float(xmax),
float(ymax),
float(xmin),
float(ymin))
# print(area(ra, Rectangle(float(my_dict[key][2][0]),float(my_dict[key][3][0]),0,0)))
if area(ra, Rectangle(float(my_dict[key][2][0]),float(my_dict[key][3][0]),0,0)) == area(ra,ra):
squares_dict[1].append(key,xmax,ymax,xmin,ymin)//This line
我遇到的问题与共享代码的最后一行有关,我得到的错误是squares_dict[1].append(key,xmax,ymax,xmin,ymin)
AttributeError: 'NoneType' object has no attribute 'append'
答案 0 :(得分:0)
squares_dict = {key: None for key in keys}
表示squares_dict
持有密钥,每个密钥的值为None
,这意味着squares_dict[1]
为无,NoneType
没有附加属性
答案 1 :(得分:0)
您必须将None更改为正确的值。 例如,而不是None尝试定义的变量或字符串/整数
答案 2 :(得分:0)
你的dict中所有值都是None
。您可以将空列表创建为值。
squares_dict = {key: [] for key in keys}
甚至可能更好,摆脱创造并使用defaultdict
import collections
squares_dict = collections.defaultdict(list)
所以第一次,如果dict中没有键,defaultdict
会创建一个新的空列表。
之后,你必须追加一个tuple
,而不是几个值(append
只接受一个参数):
squares_dict[1].append((key,xmax,ymax,xmin,ymin))