制作一个包含(i,i * i)的字典,其中i为1到n
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了制作一个包含(i,i * i)的字典,其中i为1到n相关的知识,希望对你有一定的参考价值。
输入格式:
在一行中取数字n。
输出格式:
在一行中打印字典d。
期望的行为,对于输入8,字典:
{1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64}
我尝试了什么:
n=int(input())
for i in range(1,n+1):
a=i*i
print("{",i,": ",a,"}",sep="")
对于输入6,它给了我什么:
{1: 1}
{2: 4}
{3: 9}
{4: 16}
{5: 25}
{6: 36}
答案
您可以在一个语句中创建dict:
d = dict((i,i*i) for i in range(1,n+1))
你得到n = 8
{1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64}
另一答案
您可以使用dictionary comprehension创建字典:
n = int(input())
d = {i: i * i for i in range(1, n + 1)}
print(d)
为10
你得到
{1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64, 9: 81, 10: 100}
另一答案
如果你想打印字典,为什么不做一个并保持简单而不是让它变得复杂。
n=int(input())
d = {}
for i in range(1,n+1):
a=i*i
d[i] = a
print(d)
你会得到预期的O / P:
{1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64}
另一答案
One-line solution
print(''.join(['{', ', '.join([': '.join((str(i), str(i * i),)) for i in range(1, n + 1)]), '}']))
Explanation
在join
模块中有一个名为str
的内置函数。有了它,您可以使用指定的分隔符连接字符串列表。
以下示例
','.join(['Hello', 'World'])
将返回concat字符串
'Hello, world'
你可以看到join
非常好地处理利润。
但请注意,join
采用单个参数,字符串列表。你不能提供整数列表;否则join
将提出错误说:
TypeError: sequence item 0: expected str instance, int found
因此,您应该强制将range
生成的整数转换为带有str
的字符串。
Reference
以上是关于制作一个包含(i,i * i)的字典,其中i为1到n的主要内容,如果未能解决你的问题,请参考以下文章
2022-03-06:金币路径。 给定一个数组 A(下标从 1 开始)包含 N 个整数:A1,A2,……,AN 和一个整数 B。 你可以从数组 A 中的任何一个位置(下标为 i)跳到下标 i+1,i+