相关疑难解决方法(0)

Python有一个字符串'contains'子串方法吗?

我正在寻找Python中的一个string.containsstring.indexof方法.

我想要做:

if not somestring.contains("blah"):
   continue
Run Code Online (Sandbox Code Playgroud)

python string substring contains

3601
推荐指数
10
解决办法
386万
查看次数

详尽地获得三个字母的所有可能组合

我正在研究leetcode问题“ wordLadder”

给定两个单词(beginWordendWord),以及字典的单词列表,找到从beginWordendWord的最短转换序列的长度,例如:

  1. 一次只能更改一个字母。
  2. 每个转换的单词都必须存在于单词列表中。需要注意的是beginWord不是变换词。

注意:

  • 如果没有这样的转换序列,则返回0。
  • 所有单词的长度相同。
  • 所有单词仅包含小写字母字符。
  • 您可以假设单词列表中没有重复项。
  • 您可以假设beginWordendWord为非空并且不相同。

范例1:

Input:
beginWord = "hit",
endWord = "cog",
wordList = ["hot","dot","dog","lot","log","cog"]

Output: 5

Explanation: As one shortest transformation is "hit" -> "hot" -> "dot" -> "dog" -> "cog",
return its length 5.
Run Code Online (Sandbox Code Playgroud)

范例2:

Input:
beginWord = "hit"
endWord = "cog"
wordList = ["hot","dot","dog","lot","log"]

Output: 0

Explanation: The endWord "cog" is not in wordList, …
Run Code Online (Sandbox Code Playgroud)

python

7
推荐指数
1
解决办法
137
查看次数

有界/极限的编辑距离

我发现了Levenshtein distancePython的一些实现。

我想知道如何有效地修改这些算法,以便在编辑距离大于n(例如 3)时它们会中断,而不是运行到最后?

因此,如果我只是想知道距离是否大于阈值,那么本质上我不想让算法运行太长时间来计算最终距离。

我在这里找到了一些相关的帖子:

  1. 修改 Levenshtein Distance 算法以不计算所有距离
  2. 莱文斯坦距离限制
  3. 计算编辑距离的最有效方法
  4. Levenshtein 距离算法比 O(n*m) 更好?

但是,我仍然没有看到任何 Python 代码执行我上面描述的操作(这或多或少也是这些帖子所描述的)。

PS:下面@amirouche提供的解决方案基于我通过一些基准测试测试过的最快实现(来自此处: https : //en.wikibooks.org/wiki/Algorithm_Implementation/Strings/Levenshtein_distance#Python,https :// stackoverflow.com/a/32558749/9024698)及其有界版本是我的测试中最快的版本(不排除可能有更快的版本)。

python break levenshtein-distance

4
推荐指数
1
解决办法
794
查看次数

根据索引AND列名称逐个单元格填充整个数据帧?

我有一个数据框,其中行索引和列标题应确定每个单元格的内容。我正在使用以下df的更大版本:

df = pd.DataFrame(index = ['afghijklde', 'afghijklmde', 'ade', 'afghilmde', 'amde'], 
                  columns = ['ae', 'azde', 'afgle', 'arlde', 'afghijklbcmde'])
Run Code Online (Sandbox Code Playgroud)

具体来说,我想应用自定义函数edit_distance()或等效函数(有关函数代码,请参见此处),该函数计算两个字符串之间的差异得分。两个输入是行名和列名。以下工作正常,但速度非常慢:

for seq in df.index:
    for seq2 in df.columns:
        df.loc[seq, seq2] = edit_distance(seq, seq2) 
Run Code Online (Sandbox Code Playgroud)

这产生了我想要的结果:

            ae  azde    afgle   arlde   afghijklbcmde
afghijklde  8    7        5       6          3
afghijklmde 9    8        6       7          2
ade         1    1        3       2          10
afghilmde   7    6        4       5          4
amde        2    1        3       2          9
Run Code Online (Sandbox Code Playgroud)

有什么更好的方法(也许使用applymap()?)呢?一切我已经试过applymap()applydf.iterrows()返回的那种错误 …

python pandas

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

有没有办法定量比较两个字符串的相似性

我有两个字串说:

s_1 = "This is a bat"
s_2 = "This is a bag"
Run Code Online (Sandbox Code Playgroud)

在定性方面它们可以是相似的(1)或不相似(0),在上面的情况下它们由于"g"而不相似,而在定量的方式中我可以看到一定量的不相似性我是如何计算这种不同的使用python从s_1到s_2的后一个"g"

我写下一个简单的代码:

Per_deff = float(((Number_of_mutated_sites)/len(s_1))*100)
Run Code Online (Sandbox Code Playgroud)

此代码告诉我们两个相同长度的字符串之间的"per_deff",如果它们的长度不相同则会怎样.我怎样才能解决我的问题.

python string

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