以特定格式打印键值对

时间:2019-11-01 18:32:33

标签: python dictionary

我们正在做一些基本的python练习,以熟悉语法,而我遇到了其中的两个问题,这要求我们以特定方式打印键值对。他们两个都要求我们使用for循环来填充字典,我可以做得很好,但是它们还需要我们以无法复制的方式打印出整个字典。

所需的打印格式如下{512:8,729:9,1000:10},而我最能复制的格式是[(512,8),(729,9),( 1000,10)]

这是我的代码,应该使用从m到n的数字作为值,并将其立方作为键填充字典。

if __name__ == "__main__":
    m = int(input())
    n = int(input())
    x = int(input())
    d={}
    for i in range(m ,n+1):
        d[i**3]=(i)
    if x>=m and x<=n:
        print(d[x])
    else:
        print("no data")
    print(sorted(d.items()))

我知道我的字典基本上是从一开始就进行排序的,我只使用sorted,因为与仅使用print(d.items())相比,它看起来更接近我的需求。

感谢您的任何建议。

2 个答案:

答案 0 :(得分:2)

为此甚至不需要使用repr:只需print(d)本身。 print函数将自动按照您所需的格式将字典转换为字符串。

答案 1 :(得分:1)

您可以使用str(dict)将字典d转换为具有该格式的字符串,因此可以使用print(str(d))或更简单的print(d)来打印它:

if __name__ == "__main__":
    m = int(input())
    n = int(input())
    x = int(input())
    d={}
    for i in range(m ,n+1):
        d[i**3]=(i)
    if x>=m and x<=n:
        print(d[x])
    else:
        print("no data")
    print(d)