为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用for循环查找字符串中子字符串的所有实例

如何使用for循环查找字符串中子字符串的所有实例

梦里花落0921 2021-12-17 10:08:04
对于学校项目,我必须找到字符串中所有列表元素实例的位置。我对 Python 缺乏经验,可能根本不了解如何在对 if 语句、循环、变量和列表的了解有限的情况下做到这一点。到目前为止,我尝试过的唯一方法是使用 for 循环。我创建了计数器变量“i”,对于字符串中的每个 list[i],我都需要它的位置。在开始查找位置之前,我需要识别字符串中的列表元素。list1=['a','b','c']str1='aabfh'i=0while "some condition":    for list1[i] in str1:        print(list1[i])    i=i+1我期望输出如下:aab而是得到:aabfh我哪里做错了?
查看完整描述

3 回答

?
www说

TA贡献1775条经验 获得超8个赞

您使用的 for 循环错误。


这将获取字符串中的每个字符,将其分配给 x,并打印出来:


for x in 'aabfh':

    print (x)

这将获取字符串中的每个字符,将其分配给 list1[i],并打印出来:


for list1[i] in 'aabfh':

    print(list1[i])

在您的代码中,如果您查看 list1,您会发现它已更改为 ['h', 'h', 'h'] 因为这是您告诉它执行的操作(或至少与“some条件”将允许)。


查看完整回答
反对 回复 2021-12-17
?
隔江千里

TA贡献1906条经验 获得超10个赞

您的代码有很多问题。


正如@Kenny Ostrom 在他的回答中指出的那样,您的for格式是错误的。


for循环的格式是:


for new_variable_name in list:

    print(new_variable_name)

new_variable_name 分配给该列表中的每个项目


for循环遍历列表中的每个项目一次。在你的情况下


for char in str1

    print(char)

会打印


a

a

b

f

h

您遇到的另一个问题是不必要的while循环。您将for循环环绕在一个while循环中,该循环将继续运行且不会停止。如果您没有for循环,这可能对您有用,但没有必要,因为您已经在使用for循环。


如果您想使用 for 循环,您的程序结构应该如下所示:


list1=['a','b','c']

str1='aabfh'

i=0

for character in str1:

   '''

   Some code here that figures out **if** the character is in list1 and then prints that character. 

   '''

你应该能够从这里弄清楚这一点。


查看完整回答
反对 回复 2021-12-17
?
素胚勾勒不出你

TA贡献1827条经验 获得超9个赞

你的 for 循环 raise NameError。您无法像那样访问 for 循环中的列表元素。将其更改为这个以打印您想要的输出:


for char in str1:

    if char in list1:

        print(char)


a

a

b

要打印其位置,您可以使用index:


for char in str1:

    if char in list1:

        print(list1.index(char))


0

0

1


查看完整回答
反对 回复 2021-12-17
  • 3 回答
  • 0 关注
  • 382 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号