Class和Dict为什么不合并?

时间:2018-12-11 14:39:04

标签: python python-3.x

我一直在尝试将字典添加到列表中,但是由于列表/字典的范围未知,所以没有运气,这是代码:

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 个答案:

答案 0 :(得分:0)

考虑到您的输入,我最容易想到的方法是仅使用键为带有索引的元组的字典:

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

答案 1 :(得分:0)

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

  

注意:在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}
"""