如何从两个不同的列表中提取数据

2024-10-01 13:38:43 发布

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

我有两个不同的列表,我需要提取数据从他们根据他们的名字,然后乘以他们。你知道吗

我有以下清单:

query_tfidf = [0.8465735902799727, 0.8465735902799727]
documents_query = [['Aftonbladet', 'play', 0.0], ['Aftonbladet', 'free', 0.0],
 ['Radiosporten Play', 'play', 0.10769448286014331], ['Radiosporten Play', 'free', 0.0]]

我需要根据它们的名字来分类,例如:

{Aftonbladet: {play: 0.0, free: 0.0}, Radiosporten Play: {play: 0.10769448286014331, free: 0.0}

然后我需要从每个数据中提取数据,并与query_tfidf相乘,然后计算两个变量。例如:

for each name:
    dot_product = (play_value * query_tfidf[0]) + (free_value * query_tfidf[1])
    query = sqrt((query_tfidf[0])^2 + (query_tfidf[1])^2)
    document = sqrt((play_value)^2 + (free_value)^2)

我有点绝望,所以我想问一下。我使用的是python2.7。你知道吗


Tags: 数据free列表forplayvalue分类sqrt
2条回答

使用字典,根据名称和关键字对documents_query中的条目进行排序非常简单:

indexedValues = {}
for entry in documents_query:
    if entry[0] not in indexedValues:
        indexedValues[entry[0]] = {}
    indexedValues[entry[0]][entry[1]] = entry[2]

这会给你indexedValues看起来像你想要的:

{'Aftonbladet': {'play': 0.0, 'free': 0.0}, 'Radiosporten Play': {'play': 0.10769448286014331, 'free': 0.0}

使用collections.defaultdict聚合数据

from collections import defaultdict

results = defaultdict(dict)
for main_key, key, value in documents_query:
    results[main_key][key] = value

# dict(results)
# Out[16]: 
# {'Aftonbladet': {'free': 0.0, 'play': 0.0},
#  'Radiosporten Play': {'free': 0.0, 'play': 0.10769448286014331}}

你以后打算怎么处理还不清楚。。。但你应该自己想办法,对吗?你知道吗

相关问题 更多 >