【发布时间】:2021-11-23 08:43:50
【问题描述】:
我在 Python 中有两个列表,我正在尝试将一个的值映射到另一个。
列表 1(坐标):
['7,16', '71,84', '72,48', '36,52', '75,36', '52,28', '76,44', '11,69', '56,35',
'15,21', '32,74', '88,32', '10,74', '61,34', '51,85', '10,75', '55,96',
'94,12', '34,64', '71,59', '76,75', '25,16', '54,100', '62,1', '60,85',
'16,32', '14,77', '40,78', '2,60', '71,4', '78,91', '100,98', '42,32', '37,49',
'49,34', '3,5', '42,77', '39,60', '38,77', '49,40', '40,53', '57,48', '14,99',
'66,67', '10,9', '97,3', '66,76', '86,68', '10,60', '8,87']
列表 2(索引):
[3, 2, 3, 3, 3, 3, 3, 1, 3, 3, 2, 3, 1, 3, 2, 1, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3,
1, 2, 1, 3, 2, 2, 3, 3, 3, 3, 2, 2, 2, 3, 3, 3, 1, 2, 3, 3, 2, 2, 1, 1]
对于输出,我需要类似:
cluster_1: [x, y], [a,b]...
cluster_2: [c, d], [e, f]...
cluster_3: [g, h], [o, j]...
我尝试在字典中执行此操作,但我只能将其放入 for 循环中每个值的最后一个坐标中。它也总是从 0 开始输出键,我希望从 1 开始标记它们。
for i in range(len(patients)):
# other stuff
k = 3
for b in range(k):
if cluster == (k - b):
dct['cluster_%s' % b] = patients[i]
哪个输出:
{'cluster_0': '97,3', 'cluster_1': '86,68', 'cluster_2': '8,87'}
我已尝试使用 dct['cluster_%s' % b].append(patients[i]),但在 cluster_0 上出现关键错误。任何帮助将不胜感激!
【问题讨论】:
标签: python list dictionary for-loop