【发布时间】:2021-02-08 15:18:22
【问题描述】:
我有一个包含诸如[2, 3, 9, 10, 16, 17, 23, 24, 99, 112, 113, 114, 299] 之类的数据的列表,我想要的是,对于每组连续数字,构造一个字典,其键表示从 1 开始的一组连续数字,值是连续数字.
预期的输出应如下所示:
{1: [2, 3], 2: [9, 10], 3: [16, 17], 4: [23, 24], 5: [99], 6: [112, 113, 114], 7: [299]}
有没有一种有效的方法来做到这一点?
【问题讨论】:
-
它们总是成对出现,还是列表中的数字也可能不连续?
-
Katsu,我已经改进了您的示例输入,希望能澄清您的文字解释的内容。请检查我对您的文字的阅读是否正确。
-
@paxdiablo 我认为代表 OP 用预期结果更改问题不是一个好主意。例如,在这种情况下,OP 可以说他所有的数字都是成对的,在这种情况下,可以通过切片(或
zip)来获取答案。你的解决方案将是一个矫枉过正 -
欢迎来到 Stack Overflow!请拨打tour,阅读what's on-topic here、How to Ask和question checklist,并提供minimal reproducible example。 “为我实现此功能”与此站点无关。你必须诚实地尝试,然后就你的算法或技术提出一个具体问题。
-
@Anonymous:我只改了例子中使用的data,然后只因为文本(“对于每一组连续的数字,构造一个字典,key代表从 1 开始的一组连续数字,以及连续数字的值”)清楚地说明了预期的内容(连续数字组,而不是对)。文本本身没有任何改变。这样做是因为有几个答案假设成对,所以需要一些明确性。我还要求 OP 检查我的更改是否符合要求。
标签: python list dictionary