Python从列表中的搜索派生新字典

2024-06-10 18:10:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个列表:A代表标记名,B代表值,它们通过相同的索引位置相关联。 我需要执行搜索,从列表中只提取一些值。这是最好的方法吗?你知道吗

步骤:

1)从外部源获取我需要的标记名列表

tobesearched = [pippo, pluto]

2)在可用标签列表中搜索标签名称并存储索引位置。你知道吗

globalTagnames = [gigi, pippo, giongion, pluto, giagia]
 indexposition=    0      1       2       3       4

3)搜索另一个列表中的值,参考上一个列表中标记名的索引。你知道吗

values= [10,11,12,13,14]

3)将标签名和另一个列表中的值放入字典:

mydict = {pippo:11, pluto:13}

Tags: 方法标记名称列表步骤代表标签pluto
3条回答

使用口述:

>>> globalTagnames = ['gigi', 'pippo', 'giongion', 'pluto', 'giagia']
>>> values = range(10, 15)

使用zipdict()globalTagnamesvalues创建dict:

>>> dic = dict(zip(globalTagnames, values))
>>> dic
{'giongion': 12, 'pippo': 11, 'gigi': 10, 'giagia': 14, 'pluto': 13}

现在,使用dict comprehension对要搜索的项进行迭代,以创建新的dict。 现在可以在O(1)时间内找到任何项的索引:

>>> tobesearched = ['pippo', 'pluto'] 
>>> {item:dic[item] for item in tobesearched}
{'pippo': 11, 'pluto': 13}

您不需要索引数组。你可以这样做

    for index,tag in enumerate(globalTagnames):
      if tag in tobesearched:
         print values[index]

相关问题 更多 >