假设我这样定义了一个字典:d = {(0,1):1,(1,0):4,(1,3):7,(2,3):11}
我想将其转换为列表,使其每个键代表嵌套列表中值的索引以及列表中嵌套列表本身的索引。每个嵌套列表都有4个项,未定义值的索引设置为* 0 *。
我很讨厌描述。这是我希望函数返回的内容:lst = [[0,1,0,0],[4,0,0,7],[0,0,0,11]]
。这是我未完成的无效代码:
def convert):
lst = []
for i in range(len(d)):
lst += [[0,0,0,0]] # adding the zeros first.
for i in d:
for j in range(4):
lst[j] = list(i[j]) # and then the others.
问题来源:stackoverflow
怎么样:
for (x,y), value in d.items():
list[x][y] = value
这是整个功能,它还会自动创建正确的列表大小
def convert(d):
# Figure out how big x and y can get
max_x = max([coord[0] for coord in d.keys()])
max_y = max([coord[1] for coord in d.keys()])
# Create a 2D array with the given dimensions
list = [[0] * (max_y + 1) for ix in range(max_x + 1)]
# Assign values
for (x,y), value in d.items():
list[x][y] = value
return list
if __name__ == "__main__":
d ={(0, 1): 1, (1, 0): 4, (1, 3): 7, (2, 3): 11}
print(convert(d))
回答来源:stackoverflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。