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

我是Python新手,我现在只是有点胡闹。。。但我被这个问题困扰着。我试图从带有for循环的字符串中删除某些索引。我的想法是这样的:

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

我希望这会有帮助

变量不应该以大写字符开头:)变量不应该以大写字符开头:)太好了,非常感谢。你能通过点击复选框来接受这个答案吗?太好了,非常感谢。你能通过点击复选标记来接受这个答案吗。