我正在寻找Python中的一个string.contains或string.indexof方法.
我想要做:
if not somestring.contains("blah"):
continue
Run Code Online (Sandbox Code Playgroud) 我正在研究leetcode问题“ wordLadder”
给定两个单词(beginWord和endWord),以及字典的单词列表,找到从beginWord到endWord的最短转换序列的长度,例如:
- 一次只能更改一个字母。
- 每个转换的单词都必须存在于单词列表中。需要注意的是beginWord是不是变换词。
注意:
- 如果没有这样的转换序列,则返回0。
- 所有单词的长度相同。
- 所有单词仅包含小写字母字符。
- 您可以假设单词列表中没有重复项。
- 您可以假设beginWord和endWord为非空并且不相同。
范例1:
Run Code Online (Sandbox Code Playgroud)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.范例2:
Run Code Online (Sandbox Code Playgroud)Input: beginWord = "hit" endWord = "cog" wordList = ["hot","dot","dog","lot","log"] Output: 0 Explanation: The endWord "cog" is not in wordList, …
我发现了Levenshtein distancePython的一些实现。
我想知道如何有效地修改这些算法,以便在编辑距离大于n(例如 3)时它们会中断,而不是运行到最后?
因此,如果我只是想知道距离是否大于阈值,那么本质上我不想让算法运行太长时间来计算最终距离。
我在这里找到了一些相关的帖子:
但是,我仍然没有看到任何 Python 代码执行我上面描述的操作(这或多或少也是这些帖子所描述的)。
PS:下面@amirouche提供的解决方案基于我通过一些基准测试测试过的最快实现(来自此处: https : //en.wikibooks.org/wiki/Algorithm_Implementation/Strings/Levenshtein_distance#Python,https :// stackoverflow.com/a/32558749/9024698)及其有界版本是我的测试中最快的版本(不排除可能有更快的版本)。
我有一个数据框,其中行索引和列标题应确定每个单元格的内容。我正在使用以下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()或apply或df.iterrows()返回的那种错误 …
我有两个字串说:
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",如果它们的长度不相同则会怎样.我怎样才能解决我的问题.