Python 3.x 我的for循环没有遍历所有可能的值

Python 3.x 我的for循环没有遍历所有可能的值,python-3.x,Python 3.x,我正在尝试将字母的子字符串存储在列表中按字母顺序排列的“s”中 s = 'azcbobobegghakl' string = '' List = [] i = -1 for letter in s: if letter == s[0]: string += letter elif letter >= s[i]: string += letter elif letter < s[i]: List.append

我正在尝试将字母的子字符串存储在列表中按字母顺序排列的“s”中

s = 'azcbobobegghakl'
string = ''
List = []
i = -1
for letter in s:

    if letter == s[0]:
        string += letter

    elif letter >= s[i]:
        string += letter

    elif letter < s[i]:
        List.append(string)
        string = letter

    i += 1
print(List)
s='azcbobebeghakl'
字符串=“”
列表=[]
i=-1
对于字母s:
如果字母==s[0]:
字符串+=字母
elif字母>=s[i]:
字符串+=字母
elif字母
我的预期结果:

['az','c','bo','bo','beggh','akl']

以及我的实际产出:

['az','c','bo','bo']


首先,您的第一个
if
语句不正确。如果i==-1:
,则应为
。由于此错误,您将忽略
s
中的第二个
a
字符

其次,在字符串的末尾,您不会将
字符串的剩余部分添加到
列表中

因此,以下是您想要的:

s = 'azcbobobegghakl'
string = ''
List = []
i = -1
for letter in s:
    if i == -1:
        string += letter

    elif letter >= s[i]:
        string += letter

    elif letter < s[i]:
        List.append(string)
        string = letter

    i += 1

List.append(string)
print(List)
s='azcbobebeghakl'
字符串=“”
列表=[]
i=-1
对于字母s:
如果i==-1:
字符串+=字母
elif字母>=s[i]:
字符串+=字母
elif字母

有一个例子。

我还想提一下,
List
在命名他的变量时是一种不好的做法,它不影响
List
类型,但我仍然要提到它。除此之外,好的洞察力!这是一个公平的观点。我相信在这段代码上会有更多的话要说。非常感谢。我真的很感激this@MukhtarAgboola如果此解决方案回答了您的问题,请接受回答,这可能有助于将来有相关问题的人: