如何从Python中的特定字母输出字符串的其余部分?

2024-09-29 21:33:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我得到了一个类似“abcdefga”的输入字符串。在迭代这个字符串时,我想输出每一个子字符串,从实际字符串旁边的字母开始。 例如:当程序选择第一个'a'时,我希望我的输出像'bcdefga'

string = 'abcdefga'
for letter in string: 
    print( ??? )
#output for the first letter should be: 'bcdefga'
#and so on ... 

Tags: the字符串in程序foroutputstring字母
3条回答

您可以使用str.index()获取字符串中第一次出现的字符的索引。然后使用字符串切片从该索引中获取剩余字符串。例如:

#                                 v "+1" to pick position of next char in string
>>> my_string[my_string.index('b')+1:]
'cdefga'

如果传递给str.index()的任何字符在字符串中不存在,它将引发ValueError异常,您可以使用try/except块处理该异常


要一次获取所有跳过字符串的起始字符的列表,可以在循环中使用字符串切片

for i, c in enumerate(my_string):
    print('current char "{}", remaining string: {}'.format(c, my_string[i+1:]))

# Output:
current char "a", remaining string: bcdefga
current char "b", remaining string: cdefga
current char "c", remaining string: defga
current char "d", remaining string: efga
current char "e", remaining string: fga
current char "f", remaining string: ga
current char "g", remaining string: a
current char "a", remaining string:
string = 'abcdefga'
for index in range(1,len(string)):
    print( string[index:] )

[index:]将字符串从索引到结尾进行切片

最简单的方法是使用索引(enumerate将为列表中的每个元素提供一个idxvalue对):

string = 'abcdefga'

for idx, letter in enumerate(string): 
    print(string[idx+1:])

另一个选项是使用index查找第一个子字符串的位置,但在这种情况下,您的第二个a将使用第一个索引(如果您没有跟踪索引):

string = 'abcdefga'

for letter in string: 
    print(string[string.index(letter)+1:])

[start:end]语法返回字符串的一部分,而index返回列表中字符串/元素中第一个出现的字母

相关问题 更多 >

    热门问题