[英]Input on dictionnary with a counter
我是Python的新手,我需要您的帮助。 我有一个类似的用户输入:
5 72 245 62
我需要将此整数拆分成这样的字典:
{1=5;2=72;3=245;4=62}
我尝试了类似的东西:
sequence = dict(x ,input().split())
其中x
是递增计数器。
如果您想要的最终结果是Python字典,那么我认为您非常接近。
实际上,您可以使用内置的python来实现此功能,即所谓的enumerate
:
>>> values = input().split()
1 2 3 4
>>> values
['1', '2', '3', '4']
>>>
>>> sequence = dict(enumerate(values))
>>> sequence
{0: '1', 1: '2', 2: '3', 3: '4'}
enumerate
仅遍历任何可迭代的对象(例如字符串列表),并在元组中输出每个项目的索引和项目本身:
>>> for x in enumerate(values):
... print(x)
...
(0, '1')
(1, '2')
(2, '3')
(3, '4')
然后,您可以在可重复的tuples
( enumerate
产生的tuples
上调用dict
,以将其变成字典。
当然,像大多数东西一样, enumerate
是零索引的,因此如果您想以1开始,也可以输入一个起始数字:
>>> sequence = dict(enumerate(values, 1))
>>> sequence
{1: '1', 2: '2', 3: '3', 4: '4'}
你有什么问题
假设,如上所述,我们有一个字符串列表。 为了使数字与列表中的每个字符串匹配,我们需要类似以下内容:
>>> dict([(1, '1'), (2, '2')...])
请注意,我向dict
传递了一个 参数 :一个元组列表,其中列表中的每个项目看起来都像(1, '1')
并且我有一个容纳所有元素的容器。
您的尝试如下:
>>> sequence = dict(x ,input().split())
这可能解释为类似(在x
上猜测):
>>> dict(1, ['1', '2', '3'])
产生以下回溯:
>>> dict(1, [1, 2, 3])
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: dict expected at most 1 arguments, got 2
您正在将两个参数传递给dict
,而不是期望的一个。
它期望其中包含一堆东西的某种容器,其中每个东西的第一个元素都映射到第二个元素,例如:
>>> [(1, '1'), (2, '2')]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.