Python 我可以从带有for循环的字符串中删除多个索引吗?
我是Python新手,我现在只是有点胡闹。。。但我被这个问题困扰着。我试图从带有for循环的字符串中删除某些索引。我的想法是这样的:Python 我可以从带有for循环的字符串中删除多个索引吗?,python,python-3.x,string,Python,Python 3.x,String,我是Python新手,我现在只是有点胡闹。。。但我被这个问题困扰着。我试图从带有for循环的字符串中删除某些索引。我的想法是这样的: Text="Gvusaibdsz8audvbsauzdgsavuczisagbcsuzaicbhas" for i in range(0,7): Text=Text.replace(Text[i], "") print(Text) 但它只删除一个索引,并恢复已替换的索引,例如: 1.loop: vusaibdsz8audvbsauzdgsavuczisa
Text="Gvusaibdsz8audvbsauzdgsavuczisagbcsuzaicbhas"
for i in range(0,7):
Text=Text.replace(Text[i], "")
print(Text)
但它只删除一个索引,并恢复已替换的索引,例如:
1.loop: vusaibdsz8audvbsauzdgsavuczisagbcsuzaicbhas
2.loop: Gusaibdsz8audvbsauzdgsavuczisagbcsuzaicbhas
看看字符串:
-->“Gvusaibdsz8audvbsauzdgsavuczisagbcsuzaicbhas”-->“vusaibdsz8audvbsauzdgsavuczisagbcsuzaicbhas”看看字符串: -->“Gvusaibdsz8audvbsauzdgsavuczisagbcsuzaicbhas”
-->“vusaibdsz8audvbsauzdgsavuczisagbcsuzaicbhas”您可以替换
Text=Text.replace(Text[i], "")
与
它使用切片来重建没有特定索引的字符串
旁注:变量名称应为小写。您可以替换
Text=Text.replace(Text[i], "")
与
它使用切片来重建没有特定索引的字符串
旁注:变量名应该是小写。当然,有很多方法可以得到想要的结果。下面是一个基于您的逻辑(使用
for循环
)的好方法。当用空字符替换字符时,最好直接删除所需的字符
在代码中,我将文本
转换为列表
,以便于处理。之后,我根据索引删除了所有字符。最后,联接操作生成所需的文本
text = "Gvusaibdsz8audvbsauzdgsavuczisagbcsuzaicbhas"
text_list = list(text)
for index in range(0, 7):
text_list.remove(text[index])
text = ''.join(text_list)
print(text) # dsz8audvbsauzdgsavuczisagbcsuzaicbhas
当然,有很多方法可以达到预期的效果。下面是一个基于您的逻辑(使用for循环
)的好方法。当用空字符替换字符时,最好直接删除所需的字符
在代码中,我将文本
转换为列表
,以便于处理。之后,我根据索引删除了所有字符。最后,联接操作生成所需的文本
text = "Gvusaibdsz8audvbsauzdgsavuczisagbcsuzaicbhas"
text_list = list(text)
for index in range(0, 7):
text_list.remove(text[index])
text = ''.join(text_list)
print(text) # dsz8audvbsauzdgsavuczisagbcsuzaicbhas
如果我理解您的意图,那么您正在尝试忽略索引0、1、2、3、4、5和6中的字符串Text
。但是您的代码目前没有这样做,但实际上它将使用第一个字母,即G
,并将其从所有字符串中删除(出现一次),下一个循环Text
等于u
,因为在第一次迭代中省略G
后,Text
等于vusaibdsz8audvbsauzdgsavuczisagbczuzaicbhas,因为有五次出现u
,文本将等于vsaibdsz8advbsauzdgsavczisagbczaicbhas
您可以将print(Text)
放入for循环中并查看结果:
>>> Text="Gvusaibdsz8audvbsauzdgsavuczisagbcsuzaicbhas"
>>> for i in range(0,7):
... Text=Text.replace(Text[i], "")
... print(Text)
...
vusaibdsz8audvbsauzdgsavuczisagbcsuzaicbhas
vsaibdsz8advbsazdgsavczisagbcszaicbhas
vsibdsz8dvbszdgsvczisgbcszicbhs
vsidsz8dvszdgsvczisgcszichs
vidz8dvzdgvczigczich
viz8vzgvczigczich
viz8vzvcziczich
在Python中,无需循环即可完成此操作,最佳方法是使用以下命令:
Text = Text[7:]
这将为您提供与DSZ8AUDVBSAUZGSAVUCZISAGBCSUZAICBHAS
相等的文本
如果您的目标是通过循环实现这一点(假设您在每次迭代中都需要文本),您可以尝试以下方法:
>>> Text="Gvusaibdsz8audvbsauzdgsavuczisagbcsuzaicbhas"
>>> for i in range(0,7):
... Text = Text[1:]
... print(Text)
...
vusaibdsz8audvbsauzdgsavuczisagbcsuzaicbhas
usaibdsz8audvbsauzdgsavuczisagbcsuzaicbhas
saibdsz8audvbsauzdgsavuczisagbcsuzaicbhas
aibdsz8audvbsauzdgsavuczisagbcsuzaicbhas
ibdsz8audvbsauzdgsavuczisagbcsuzaicbhas
bdsz8audvbsauzdgsavuczisagbcsuzaicbhas
dsz8audvbsauzdgsavuczisagbcsuzaicbhas
我希望这会有帮助 如果我理解了您要做的事情,那么您正在尝试忽略索引0、1、2、3、4、5和6中的字符串Text
。但是您的代码目前没有这样做,但实际上它将使用第一个字母,即G
,并将其从所有字符串中删除(出现一次),下一个循环Text
等于u
,因为在第一次迭代中省略G
后,Text
等于vusaibdsz8audvbsauzdgsavuczisagbczuzaicbhas,因为有五次出现u
,文本将等于vsaibdsz8advbsauzdgsavczisagbczaicbhas
您可以将print(Text)
放入for循环中并查看结果:
>>> Text="Gvusaibdsz8audvbsauzdgsavuczisagbcsuzaicbhas"
>>> for i in range(0,7):
... Text=Text.replace(Text[i], "")
... print(Text)
...
vusaibdsz8audvbsauzdgsavuczisagbcsuzaicbhas
vsaibdsz8advbsazdgsavczisagbcszaicbhas
vsibdsz8dvbszdgsvczisgbcszicbhs
vsidsz8dvszdgsvczisgcszichs
vidz8dvzdgvczigczich
viz8vzgvczigczich
viz8vzvcziczich
在Python中,无需循环即可完成此操作,最佳方法是使用以下命令:
Text = Text[7:]
这将为您提供与DSZ8AUDVBSAUZGSAVUCZISAGBCSUZAICBHAS
相等的文本
如果您的目标是通过循环实现这一点(假设您在每次迭代中都需要文本),您可以尝试以下方法:
>>> Text="Gvusaibdsz8audvbsauzdgsavuczisagbcsuzaicbhas"
>>> for i in range(0,7):
... Text = Text[1:]
... print(Text)
...
vusaibdsz8audvbsauzdgsavuczisagbcsuzaicbhas
usaibdsz8audvbsauzdgsavuczisagbcsuzaicbhas
saibdsz8audvbsauzdgsavuczisagbcsuzaicbhas
aibdsz8audvbsauzdgsavuczisagbcsuzaicbhas
ibdsz8audvbsauzdgsavuczisagbcsuzaicbhas
bdsz8audvbsauzdgsavuczisagbcsuzaicbhas
dsz8audvbsauzdgsavuczisagbcsuzaicbhas
我希望这会有帮助 变量不应该以大写字符开头:)变量不应该以大写字符开头:)太好了,非常感谢。你能通过点击复选框来接受这个答案吗?太好了,非常感谢。你能通过点击复选标记来接受这个答案吗。