在列表中拆分字符串以查找和替换python中的元素

2024-10-04 11:22:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个货币对的列表,比如它看起来像这样:

cp = ['EURUSD', 'CHFUSD', 'JPYUSD', 'CADUSD']

我要做的是遍历这个列表,将美元改为英镑,得到一个新的列表,该列表将显示:

^{pr2}$

我假设的方法是遍历每对字符串,将字符串拆分为一个列表,删除最后3个元素,然后将“G”、“B”、“p”追加为新的最后3个元素,最后将其返回到字符串中,并将其添加到新列表“new_cp”。在

我开始的代码是:

for pair in cp:
   split_pair = pair.split()

然而,所有这些结果都是:

['EURUSD']
['CHFUSD']

等等

所以它只是拆分列表,而不是拆分列表中每个货币对的字符串。在

我知道这是一个相对初级的东西,但我真的很难理解。我只是不明白为什么这样不行。在

如果你能帮助我做错事,或者甚至建议一个更有效的方法来实现我想要做的事情,我将非常感激。在


Tags: 方法字符串代码元素列表new货币cp
3条回答

您可以通过在列表理解中使用replace来实现这一点:

cp = ['EURUSD', 'CHFUSD', 'JPYUSD', 'CADUSD']
new_cp = [word.replace('USD', 'GBP') for word in cp] 
#i.e.: for word in cp, we apply the specified function to it - replace the 'USD' in that word with 'GBP' - and then append it to a new list
print(new_cp)

输出:['EURGBP', 'CHFGBP', 'JPYGBP', 'CADGBP']

如果您知道每个货币对将包含USD作为最后三个字符,那么更有效的方法是只使用列表索引和追加GBP

new_cp = [i[:-3] + 'GBP' for i in cp]

我建议使用.replace()方法

例如:

cp = ['EURUSD', 'CHFUSD', 'JPYUSD', 'CADUSD']
new_cp = []

for currency in cp:
    new_cp.append(currency.replace('USD', 'GBP'))

print(new_cp)

>> ['EURGBP', 'CHFGBP', 'JPYGBP', 'CADGBP']

希望这有帮助:)

相关问题 更多 >