【发布时间】:2019-07-04 05:05:28
【问题描述】:
我有一个货币对列表,比如说它看起来像这样:
cp = ['EURUSD', 'CHFUSD', 'JPYUSD', 'CADUSD']
我要做的是遍历此列表,将 USD 更改为 GBP 以生成一个新列表,该列表将显示:
new_cp = ['EURGBP', 'CHFGBP', 'JPYGBP', 'CADGBP']
我认为我会这样做的方式是循环遍历每一对,将字符串拆分为一个列表,删除最后 3 个元素,然后附加 'G'、'B'、'P' 作为新的最后一个3 个元素,最后将其返回到一个字符串中,并将其添加到新列表 'new_cp' 中。
我开始的代码是:
for pair in cp:
split_pair = pair.split()
然而,这一切的结果是:
['EURUSD']
['CHFUSD']
等等
所以它只是拆分列表,而不是拆分列表中每个货币对的字符串。
我知道这是相对初学者的东西,但我真的很难过。我只是不明白为什么这不起作用。
如果你能帮助我解决我在那里做错的事情,或者甚至提出一种更有效的方法来实现我想要做的事情,我将不胜感激。
【问题讨论】:
-
.split怎么知道你的意思是分成两组三个字符?默认情况下,它在任何 空白 上分割,其中没有。 -
.split()没有参数,在空白处分割,它不会神奇地识别你想要在 3 个字符后在'USD'/ 的边界 - 考虑改为切片字符串或使用.replace()跨度> -
您的数据结构看起来也不是最理想的,元组列表或字典似乎更自然,例如
[('EUR', 'USD'), ('CHF', 'USD')]等