我们正在做一些基本的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())相比,它看起来更接近我的需求。
感谢您的任何建议。
答案 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)