为了账号安全,请及时绑定邮箱和手机立即绑定

Class 和 Dict 为什么不合并?

Class 和 Dict 为什么不合并?

四季花海 2021-09-14 15:29:51
我一直在尝试将字典附加到列表中,但由于列表/字典的范围未知,因此没有找到运气,这是代码:def something():    my_dict = {}    my_list = []        for i in range(n):            for j in range(n):                my_dict[i,j] = False                my_list[i,j].append(my_dict[i,j])     return(my_list, my_dict)我写错了吗?
查看完整描述

2 回答

?
慕无忌1623718

TA贡献1744条经验 获得超4个赞

根据您的输入,我能想到的最简单的方法是只使用一个字典,其键是带索引的元组:


def something(n):

    my_dict = {}

    for i in range(n):

        for j in range(n):         

            my_dict[(i,j)] = False            

    return(my_dict)

如果你然后运行:


d = something(3)

print(d)

它会输出:


{(0, 1): False, (1, 2): False, (0, 0): False, (2, 1): False, (1, 1): False, (2, 0): False, (2, 2): False, (1, 0): False

 (0, 2): False}

如果要访问字典的单个元素,则需要使用:


d[(1,1)]

例如:


print(d[(1,1)])

将输出:


False


查看完整回答
反对 回复 2021-09-14
?
陪伴而非守候

TA贡献1757条经验 获得超8个赞

感谢您的更新,请检查下面的代码,我想这就是您要找的。


注意:在for循环之前创建字典(正如你在你的问题中提到的,在追加操作后会增加1条语句来清除字典,所以最好使用my_dict = {(i, j) = False来解决这个问题。


获取列表 »

def something(n):

    my_list = []


    for i in range(n):

        for j in range(n):

            my_dict = {(i, j): False}

            my_list.append(my_dict) 


    return(my_list) # Return list


print(something(3))


"""

[{(0, 0): False}, {(0, 1): False}, {(0, 2): False}, {(1, 0): False}, {(1, 1): F

alse}, {(1, 2): False}, {(2, 0): False}, {(2, 1): False}, {(2, 2): False}]

"""

作为字典获取 »

def something(n):

    my_dict = {}


    for i in range(n):

        for j in range(n):

            my_dict[(i, j)] = False


    return(my_dict) # Return dictionary


print(something(3))


"""

{(0, 0): False, (0, 1): False, (0, 2): False, (1, 0): False, (1, 1): False, (1,

 2): False, (2, 0): False, (2, 1): False, (2, 2): False}

"""


查看完整回答
反对 回复 2021-09-14
  • 2 回答
  • 0 关注
  • 178 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信