我正在尝试编写一个函数来查看字符串列表并确定列表中的下一个字符串是否是前一个字符串的子字符串。
所以如果我有一个列表 ['Ryan', 'Rya', 'Ry', 'Testing', 'Test']
我会回来的 ['Ryan', 'Rya', 'Ry', 'Test']。
我什至不确定从哪里开始。
请您参考如下方法:
你可以通过列表理解来完成这个
def find_results(seq): #I'm sure you can name this function better
return [seq[0]] + [current for previous, current in zip(seq, seq[1:])
if current in previous]
seq[1:] 是除第一个元素之外的整个列表
zip(a, b) 为您传递给它的每个可迭代对象生成元素对。在这种情况下,前面的字符串和当前字符串。
in 运算符将测试一个字符串是否在另一个字符串中。 “testing”中的“test”为真
理解说,对于每对字符串(当前和上一个),如果当前字符串是前一个字符串的子字符串,则构建所有当前字符串的列表
