小编van*_*van的帖子

在python中并行化这个嵌套的for循环

我正在努力改善这段代码的执行时间.由于计算非常耗时,我认为最好的解决方案是并行化代码.

我是第一次使用这个问题中解释的地图,但后来我尝试了一种更简单的方法,认为我可以找到更好的解决方案.但是我还没有拿出任何东西,所以因为这是一个不同的问题,所以我决定把它作为一个新问题发布.

我正在使用Python 3.4在Windows平台上工作.

这是代码:

similarity_matrix = [[0 for x in range(word_count)] for x in range(word_count)]
for i in range(0, word_count):
    for j in range(0, word_count):
        if i > j:
            similarity = calculate_similarity(t_matrix[i], t_matrix[j])
            similarity_matrix[i][j] = similarity
            similarity_matrix[j][i] = similarity
Run Code Online (Sandbox Code Playgroud)

这是calculate_similarity功能:

def calculate_similarity(array_word1, array_word2):
      denominator = sum([array_word1[i] + array_word2[i] for i in range(word_count)])
      if denominator == 0:
          return 0
      numerator = sum([2 * min(array_word1[i], array_word2[i]) for i in range(word_count)])
      return numerator / denominator
Run Code Online (Sandbox Code Playgroud)

以及代码的解释:

  • word_count 是列表中存储的唯一单词的总数 …

python parallel-processing multiprocessing python-multithreading python-multiprocessing

5
推荐指数
2
解决办法
2825
查看次数

查找列表交集中元素数量的快速方法(Python)

有没有更快的方法在Python中计算这个值:

len([x for x in my_list if x in other_list])
Run Code Online (Sandbox Code Playgroud)

我尝试使用集合,因为列表的元素是唯一的,但我注意到没有区别.

len(set(my_list).intersection(set(other_list)))
Run Code Online (Sandbox Code Playgroud)

我正在处理大型名单,所以即使是最轻微的改进也很重要.谢谢

python optimization

3
推荐指数
1
解决办法
2240
查看次数