0

在一个小型 python 项目上工作,并达到了让我难过的地步。

runners = ["Tom","Bob","Bill","Gary"]

runner_id = [123223,234345,356543,487334]

event_id = [11,12,13,14]

event_time = [12.30,13.00,14.00,16.00]

我有上面的数据,并希望为每个跑步者提供一个字典,并将字典命名为跑步者的名字。

所以结果如下:

Tom = {runner_id : 123223, event_id : 11, event_time : 12.30}

Bob = {runner_id : 234345, event_id : 12, event_time : 13.00}

Bill = {runner_id : 356543, event_id : 13, event_time : 14.00}

Gary = {runner_id : 487334, event_id : 14, event_time : 16.00}

很难理解如何将字典命名为我需要的名称,即原始列表之一中的名称。

已经阅读了很多帖子,但找不到这个特定问题的答案。

感激地收到所有正确方向的有用指示。

非常感谢。

4

4 回答 4

3

您可以使用 dict 理解和zip函数:

runners = ["Tom","Bob","Bill","Gary"]
runner_id = [123223,234345,356543,487334]
event_id = [11,12,13,14]
event_time = [12.30,13.00,14.00,16.00]

print {name:{'runner_id' : i, 'event_id' : j, 'event_time' : k} for i,j,k,name in zip(runner_id,event_id,event_time,runners)}

结果 :

{'Bob': {'event_id': 12, 'event_time': 13.0, 'runner_id': 234345}, 'Bill': {'event_id': 13, 'event_time': 14.0, 'runner_id': 356543}, 'Gary': {'event_id': 14, 'event_time': 16.0, 'runner_id': 487334}, 'Tom': {'event_id': 11, 'event_time': 12.3, 'runner_id': 123223}}
[Finished in 0.1s]
于 2015-04-27T16:02:23.280 回答
1

您必须使用跑步者名称作为更大字典的键

runner_dict = {}
for index, runner in enumerate(runners):
    runner_dict[runner] = {
        'runner_id'  : runner_id[index],
        'event_id'   : event_id[index],
        'event_time' : event_time[index]
    }
于 2015-04-27T16:01:44.833 回答
0

如果你有一本包含所有跑步者及其字典的字典,那就更好了。所以你有这个:

runners = {
    "Tom" : {runner_id : 123223, event_id : 11, event_time : 12.30},
    "Bob" : {runner_id : 234345, event_id : 12, event_time : 13.00},
    "Bill" : {runner_id : 356543, event_id : 13, event_time : 14.00},
    "Gary" : {runner_id : 487334, event_id : 14, event_time : 16.00},
    }
于 2015-04-27T16:02:47.330 回答
0

如下

runners = ["Tom","Bob","Bill","Gary"]
runner_id = [123223,234345,356543,487334]
event_id = [11,12,13,14]
event_time = [12.30,13.00,14.00,16.00]

runners_dict = {}
for index, runner in enumerate(runners):
    runners_dict[runner] = {
        'runner_id' : runner_id[index],
        'event_id' : event_id[index],
        'event_time' : event_time[index]
    }

如果你想得到某些 runner dict 然后

runners_dict['name']
于 2015-04-27T16:12:40.920 回答