Python - 比较两个字符串/列表中“正确”顺序排序的单词#的最有效方法

时间:2010-10-24 16:50:33

标签: python string list comparison sequence

我想知道破解这个问题的计算效率最高的Python方法是什么。

假设你有两个字符串(或者拆分这些字符串的列表 - 无所谓),“这是正确的字符串”vs“这是正确的字符串。”

我们假设第一个字符串始终是正确的,并且将根据按正确顺序排序的单词将分数分配给第二个字符串。对于上面两个字符串,我们将分配0.6(因为5个单词中只有3个位于正确的位置)。

最佳, 乔治娜

4 个答案:

答案 0 :(得分:2)

这听起来非常像家庭作业。试着考虑一下。是否足以遍历一次正确的单词列表,并检查第二个列表中的相应单词是否等于正确列表中的单词?

我可能会在python中压缩列表并比较这些对是否相等。

答案 1 :(得分:0)

a = "this is the right string"
b = "this is right the string"

sum([1 for i,v in zip(a.split(), b.split()) if i == v])

答案 2 :(得分:0)

sum(f == s for f, s in zip(first, second)) / len(first)

答案 3 :(得分:0)

使用ord()将每个字符转换为整数值(其序数值),然后使用按位运算符^对每个字符进行异或。如果字符相同,则XOR操作将返回0(零),然后使用|=将返回值与result按位或,然后将操作结果保存为{ {1}}。如果迭代所有字符后result仍为零,则字符串是等效的。

result