开发者社区> 问答> 正文

将字典转换为列表列表

假设我这样定义了一个字典: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

展开
收起
is大龙 2020-03-24 22:48:25 619 0
1 条回答
写回答
取消 提交回答
  • 怎么样:

    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

    2020-03-24 22:48:33
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载