方法#1:使用簡單的方法(sum () + zip ()
)
我們可以使用函數 sum 的簡單方法來完成這個特定的任務和 zip,我們可以製定一個實用函數來計算兩個字符串的相似度。
# Python3 演示代碼
# 行間相似度
# 使用樸素的方法 (sum() + zip())
# 計算相似度的實用函數
def
類似 (str1, str2):
str1
=
str1
+
``
*
(
len
(str2)
-
len
(str1) )
str2
=
str2
+
``
*
(
len
(str1)
-
len
(str2))
返回
sum
(
1
if
i
=
=
j
else
0
for
i, j
in
zip
(str1, str2))
/
float
(
len
(str1))
# 初始化字符串
test_string1
=
` Geeksforgeeks`
test_string2
=
`Geeks4geeks`
# 使用樸素方法 (sum () + zip ())
# 行間相似度
res
=
類似 (test_string1, test_string2)
# 打印結果
print
(
"2個字符串的相似度為:"
+
str
(res))
輸出:
2個字符串的相似度為:0.38461538461538464
方法二:使用 SequenceMatcher.ratio()
有一個內置的方法可以幫助完成這個特定的任務,建議做這個特定的任務,因為它不需要特殊的方法,但是使用內置結構更有效地完成任務。 /p>
# Python3 演示代碼
# 行間相似度
# 使用 SequenceMatcher.ratio ()
from
difflib
導入
code> SequenceMatcher
# 計算相似度的實用函數
def
類似(str1, str2):
return
SequenceMatcher (
None
, str1, str2) .ratio ()
# 行初始化
test_string1
=
`Geeksforgeeks`
test_string2
=
`Geeks`
# 使用 SequenceMatcher.ratio ( )
# 行間相似度
res
=
類似(test_string1, test_string2)
# 打印結果
print
(
"2 個字符串的相似度為:"
+
str
(res ))
輸出:
2個字符串的相似度為:0.5555555555555556
Shop
Latest questions