如何通过使用循环或其他方式使我的代码更简单?

How to make my code more simple by using a loop or someting else?

当我得到 [x, y] 坐标时,我必须 return 列表字典中的一个符号。列表字典是这样的:

GOBBLET_REPRESENTATION = {
    1: ["▫", "◇", "◯", "□"],
    2: ["▪", "◆", "●", "■"],
}

这是我尝试过的:

def formate_gobblet(gobblet):
    if gobblet == []:
        return "   "
    else:
        if gobblet == [1,0]:
            return f' {GOBBLET_REPRESENTATION.get(1)[0]} '
        elif gobblet == [1,1]:
            return f' {GOBBLET_REPRESENTATION.get(1)[1]} '
        elif gobblet == [1,2]:
            return f' {GOBBLET_REPRESENTATION.get(1)[2]} '
        elif gobblet == [1,3]:
            return f' {GOBBLET_REPRESENTATION.get(1)[3]} '
        elif gobblet == [2,0]:
            return f' {GOBBLET_REPRESENTATION.get(2)[0]} '
        elif gobblet == [2,1]:
            return f' {GOBBLET_REPRESENTATION.get(2)[1]} '
        elif gobblet == [2,2]:
            return f' {GOBBLET_REPRESENTATION.get(2)[2]} '
        elif gobblet == [2,3]:
            return f' {GOBBLET_REPRESENTATION.get(2)[3]} '

有 formate_gobblet(gobblet) with gobblet = [1,2] 应该 return ◯ 。这段代码可以做到这一点,但是,如果有一种方法可以使 else 语句的代码更简单,我在徘徊,因为它看起来可以使用循环来解决。

因为每一行都有很大的不同,所以用循环来制作它可能会更麻烦。对不起。

你不需要循环。事实上,这可以使用索引本身在一行中完成。

def formate_gobblet(gobblet):
    if gobblet == []:
        return "   "
    else:
        return return f' {GOBBLET_REPRESENTATION.get(gobblet[0])[gobblet[1]]}  '

上面的代码所做的是检查空 gobblet否则 returns 位于第一个元素 gobblet[0] 和第二个元素 gobblet[1]