我的数据是一个嵌套的决策者在国家的人。下面是去掉不重要的东西后的样子:
{'DE': [{'createdTime': '2017-11-03T13:41:01.000Z',
'fields': {'Land': 'DE', 'Teilnehmer': 'James Hunt'},
'id': 'reccgdSZXZFvAztCT'},
{'createdTime': '2017-11-04T12:50:21.000Z',
'fields': {'Land': 'DE', 'Teilnehmer': 'Susie Mueller'},
'id': 'recQhmPmTrlZzoI84'},
{'createdTime': '2017-11-04T12:50:33.000Z',
'fields': {'Land': 'DE', 'Teilnehmer': 'Tom Tikky'},
'id': 'recKCh99xvQwwCmSp'}],
'UK': [{'createdTime': '2017-11-03T13:41:01.000Z',
'fields': {'Land': 'UK', 'Teilnehmer': 'John Doe'},
'id': 'recFTlSMXNET6e2UX'},
{'createdTime': '2017-11-03T14:16:00.000Z',
'fields': {'Land': 'UK', 'Teilnehmer': 'Jane Smith'},
'id': 'recLqDHWh14TLm30g'},
{'createdTime': '2017-11-03T18:41:56.000Z',
'fields': {'Land': 'UK', 'Teilnehmer': 'Claire Singer'},
'id': 'recB8XaFb7va0lT50'}]}
以前已经按国家分类了。我现在需要建立发送方/接收方对,每个人都需要在两个对中—一个作为发送方,一个作为接收方。双方必须来自同一个国家。因此,根据上述样本数据,最终每个国家将有3对。你知道吗
所有关于输出的问题都是id。基本上我认为一个列表可以在输出中工作,但我不确定当涉及到列表中元素的顺序时,这些是否可靠。除此之外,结果可能是这样的:
[
# DE Pairs
['reccgdSZXZFvAztCT', 'recQhmPmTrlZzoI84'],
['recQhmPmTrlZzoI84', 'recKCh99xvQwwCmSp'],
['recKCh99xvQwwCmSp', 'reccgdSZXZFvAztCT'],
# UK Pairs
['recFTlSMXNET6e2UX', 'recLqDHWh14TLm30g'],
['recLqDHWh14TLm30g', 'recB8XaFb7va0lT50'],
['recB8XaFb7va0lT50', 'recFTlSMXNET6e2UX']
]
为了解决这个问题,我想到的每件事都涉及到for循环的几个层次,但我还是没能完成。我确信一定有一个好办法来解决这个问题。有什么想法吗?你知道吗
给了我们
编辑:
会给我们更像
至少,如果一个国家的人口超过2人,就没有一种方法可以生产出你想要的一对。所以你需要选择一种方法来选择一对,这样每个人在每一个端上正好一次。你知道吗
一个简单的方法是让每个人都发送给国家名单中紧随其后的人。绕过去,这样最后一个人发送给第一个人,你就有了一个有效的算法。你知道吗
下面是一个列表,我认为它符合您的要求:
在理解中,
p
是代表一个国家的人的词典列表,i
是p
的索引。我们允许i-1
在一开始就是-1
,因为这会处理“环绕”的情况,我们需要让成对按您想要的方式工作。你知道吗相关问题 更多 >
编程相关推荐