【发布时间】:2021-11-05 11:19:34
【问题描述】:
给定一个字符串
abcd
我需要生成以下输出:
['a', 'ab', 'abc', 'abcd', 'b', 'bc', 'bcd', 'c', 'cd', 'd']
我在 Python 3.8 中将以下代码放在一起,它可以工作,但非常笨重且效率低下:
text = 'abcd'
final = [text[y:i+1] for i in range(len(text)) for y in range(len(text)) if len(text[y:i+1]) > 0]
print(sorted(final))
有没有更优雅或更高效的方法来实现所需的输出,而不使用嵌套的 for 循环?
谢谢
【问题讨论】:
标签: arrays python-3.x string for-loop nested