1

我有 2 个列表: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}
4

2 回答 2

2

您不需要 indexposition 数组。你可以做如下

    for index,tag in enumerate(globalTagnames):
      if tag in tobesearched:
         print values[index]
于 2013-09-05T08:57:26.613 回答
1

使用字典:

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

globalTagnames从、values使用zip和创建 dict 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}
于 2013-09-05T08:45:53.950 回答