首页 > 解决方案 > 用 1 到 165 混淆的数字替换长字符串中的每个“$”?

问题描述

我的目标:我有一个很长的 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>........'

等等..它是用于选择音频品牌的 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>........' 

再次,依此类推。

所以我首先用 $ 替换所有“#”,这样我就可以以某种方式再次循环字符串,现在用 1 -165 的数字替换每个 $(例如循环直到第一个 $ 并将其替换为“1”,继续直到下一个“$”,然后用“2”替换它,依此类推。我已经尝试了一切,但我无法解决正确的结果。任何帮助将不胜感激!!提前谢谢你。

标签: pythonfunctionloopsmethods

解决方案


您可以在“$”上拆分字符串并在遍历列表时填写值。然后结合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)

推荐阅读