JMa*_*tth 0 python list-comprehension list slice
我正在创建一个字符串的所有版本的列表,可以通过使用理解只删除一个字符来实现.我可以删除每个字符但不能保留其他字符.
wrd = 'superstar'
list2 = [(wrd[:1-1] + wrd[:i+1]) for i in range(len(wrd))]
print(list2)
Run Code Online (Sandbox Code Playgroud)
你的列表切片有点偏.要从字符串中的位置删除单个字符,请使用表单string[:index] + string[index + 1:]而不是string[:index - 1] + string[:index + 1]:
>>> word = 'superstar'
>>> words = [word[:i] + word[i + 1:] for i in range(len(word))]
>>> words
['uperstar', 'sperstar', 'suerstar', 'suprstar', 'supestar', 'supertar', 'supersar', 'superstr', 'supersta']
>>>
Run Code Online (Sandbox Code Playgroud)
>>> from itertools import combinations
>>> wrd = 'superstar'
>>> [''.join(comb) for comb in combinations(wrd, len(wrd) - 1)]
['supersta', 'superstr', 'supersar', 'supertar', 'supestar', 'suprstar', 'suerstar', 'sperstar', 'uperstar']
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
570 次 |
| 最近记录: |