我有两个列表,它们是元组列表。你知道吗
例如
List1 = [('zaidan', 0.0013568521031207597),('zimmerman', 0.0013568521031207597), ('ypa', 0.004070556309362279)]
List2 = [('zimmerman', 0.0013568521031207597), ('ypa', 0.004070556309362279), ('zaidan', 0.0013568521031207597)]
如果项目顺序相同,我可以使用以下代码将两个值相乘:
val = [(t1, v1*v2) for (t1, v1), (t2, v2) in zip(tf,idf)]
但是我的问题是列表输出的顺序是随机的,所以代码不起作用。所以本质上我需要看一个列表中的单词是否与另一个列表中的单词匹配,然后相乘得到一个类似于元组列表的输出。你知道吗
如果出于任何原因,您不想使用dictionary(尽管它是一个更好的解决方案),而是想使用列表和元组,那么您需要的是在列表中循环并检查是否相等:
最后,
z
将是一个元组列表,原始字符串位于0
索引处,乘法结果位于1
索引处。你知道吗这个问题很好地展示了
dictionary
数据结构的优点以及您的问题如何从中受益。因此,首先,我们将元组列表转换为字典(dict
-calls),然后根据需要“组合”这两个dict以获得所需的结果。你知道吗产生:
如果
dict_item
数据类型令人困惑,您可以将其强制转换为普通列表。你知道吗如果你的数据是一样的,我会告诉你最简单的解决方法。 把它整理一下:
相关问题 更多 >
编程相关推荐