Python 更换每个'$';在一个从1到165的长字符串中?

Python 更换每个'$';在一个从1到165的长字符串中?,python,function,loops,methods,Python,Function,Loops,Methods,我的目标是: 我有一个很长的str,看起来像这样: longStr = '<option value = $>A/D/S (Pre-ADST)</option><option value = $>Aiwa</option><option value = $>Alphard Audio</option><option value = $>Alphasonik</option><option val

我的目标是: 我有一个很长的str,看起来像这样:

longStr = '<option value = $>A/D/S (Pre-ADST)</option><option value = $>Aiwa</option><option value = $>Alphard Audio</option><option value = $>Alphasonik</option><option value = $>Alpine</option><option value = $>Altec Lansing</option><option value = $>Alumapro</option><option value = $>American Bass</option><option value = $>American HiFi</option>........'
longStr='A/D/S(ADST前)AiwaAlphard音频AlphaSonicalpinaloltec LansingAlumaproAmerican Bass美式高保真……。'
等等。。 它是用于音频品牌选择的html,并且“选项值”应该是从1到任意值的数字,因此最终它看起来像:

longStr = '<option value = "1">A/D/S (Pre-ADST)</option><option value = "2">Aiwa</option><option value = "3">Alphard Audio</option><option value = "4">Alphasonik</option><option value = "5">Alpine</option><option value = "6">Altec Lansing</option><option value = "7">Alumapro</option><option value = "9">American Bass</option><option value = "10">American HiFi</option>........' 
longStr='A/D/S(ADST前)AiwaAlphard音频AlphaSonicalpinaloltec LansingAlumaproAmerican Bass美式高保真……。'
再一次,如此等等


因此,我开始用$替换所有的“#”,这样我可以在字符串中以某种方式再次循环,现在用1-165的数字替换每个$(例如,循环到第一个$并用“1”替换,继续到下一个“$”并用“2”替换)诸如此类。我已经尝试了所有方法,但仍然无法处理正确的结果。如果有任何帮助,我们将不胜感激!!提前感谢。

您可以在遍历列表时拆分“$”上的字符串并填充值。然后与
str.join

longStr = '<option value = $>A/D/S (Pre-ADST)</option><option value = $>Aiwa</option><option value = $>Alphard Audio</option><option value = $>Alphasonik</option><option value = $>Alpine</option><option value = $>Altec Lansing</option><option value = $>Alumapro</option><option value = $>American Bass</option><option value = $>American HiFi</option>........'

x = ''.join(f'{v}"{i+1}"' for i, v in enumerate(longStr.split('$')))
print(x)
longStr='A/D/S(ADST前)AiwaAlphard音频AlphaSonicalpinaloltec LansingAlumaproAmerican Bass美式高保真……。'
x=''.join(f'{v}{i+1}',表示枚举中的i,v(longStr.split('$))
打印(x)

亚历克的答案很理想,但是如果你想要一个更简单的答案:

您可以使用for循环遍历字符串中的每个字符,并检查它是否为“$”。然后,您可以使用
str.replace(old,new,count)
替换它

以下是代码实现:

longStr = '<option value = $>A/D/S (Pre-ADST)</option><option value = $>Aiwa</option><option value = $>Alphard Audio</option><option value = $>Alphasonik</option><option value = $>Alpine</option><option value = $>Altec Lansing</option><option value = $>Alumapro</option><option value = $>American Bass</option><option value = $>American HiFi</option>........'
count = 0
for i in longStr:
    if i == "$":
        count += 1
        replace = "\""+ str(count) + "\""
        longStr = longStr.replace('$',str(count),1)
print(longStr)

longStr='A/D/S(ADST前)AiwaAlphard音频AlphaSonicalpinaloltec LansingAlumaproAmerican Bass美式高保真……。'
计数=0
对于longStr中的我:
如果i==“$”:
计数+=1
replace=“\”+str(计数)+“\”
longStr=longStr.replace(“$”,str(count),1)
打印(longStr)

很抱歉之前犯了一个错误。

我看到了,我很感激!!您的解决方案也非常有效。