如何解决我用python编写的程序有什么问题?
问题描述是编写一个程序以获取字典中元素的键和值的输入。
以python字典格式显示键值对,并找到字典的长度。
测试案例1:
输入
3
23
33
43
32
33
34
输出
The dictionary is
{23: 32,33: 33,43: 34}
Length of dictionary is
3
我的代码是:
n = int(input())
di = dict()
for i in range(0,n):
a = int(input())
b = int(input())
di[a] = b
print("The dictionary is")
print(di)
print("Length of dictionary is")
print(len(di))
对于上面给出的相同输入,我得到的输出是:
The dictionary is
{23: 33,43: 32,33: 34}
Length of dictionary is
3
我怎么了?
解决方法
看起来提供的输入是按以下顺序排列的: i)字典的大小 ii)按键 iii)值
您似乎将其读取为键,值,键值...
,提供的输入顺序如下:
- 字典的大小
- 按键
- 值
因此您的代码应更像这样:
# collecting length
n=int(input())
# creating lists for keys and values
keys_list = []
values_list = []
# collecting keys
for i in range(0,n):
a=int(input())
keys_list.append(a)
# collecting values
for i in range(0,n):
a=int(input())
values_list.append(a)
# creating dictionnary
di = dict(zip(keys_list,values_list))
# printing result
print("The dictionary is")
print(di)
print("Length of dictionary is")
print(len(di))
就像这样,您首先要收集所有键并将它们放入列表中,然后再收集所有值并将它们放入列表中。
最后,您将从这两个列表中创建字典。
也许就是这样:
n = int(input('Input len of dict: '))
j = 0
l = []
while j != n * 2:
l.append(input('input num: '))
j += 1
di = {int(x): int(x[::-1]) for x in l[:3] if x[::-1] in l}
print(f"The dictionary is {di}\nLength of dictionary is {len(di)}")
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。