处理此字符串的最简洁方法

时间:2021-05-03 10:36:26

标签: python

我有一个看起来像这样的字符串:“'MAY21: 300 USD/t JUN21: 333 USD/t JUL21: 0 AUG21: 111 USD/t SEP21: 555 USD/t”

我希望从中获得:

[['MAY21', '300'],
 ['JUN21', '333'],
 ['JUL21', '0'],
 ['AUG21', '111'],
 ['SEP21', '555']]

我能想到的涉及几个 for 循环。我想知道处理这个字符串以获得我想要的输出的最佳方法。对我来说,这里的挑战是处理“JUL21:0”,它之后没有美元/吨。

2 个答案:

答案 0 :(得分:2)

使用regex

import re

a = "MAY21: 300 USD/t JUN21: 333 USD/t JUL21: 0 AUG21: 111 USD/t SEP21: 555 USD/t"

out = re.findall("(\w+): (\d+)",a)

print(out)

    [('MAY21', '300'),
     ('JUN21', '333'),
     ('JUL21', '0'),
     ('AUG21', '111'),
     ('SEP21', '555')]

答案 1 :(得分:1)

x="MAY21: 300 USD/t JUN21: 333 USD/t JUL21: 0 AUG21: 111 USD/t SEP21: 555 USD/t"
x=x.replace(" USD/t","").replace(": ",":")
x=x.split(" ")
for i in range(len(x)):
  x[i]=x[i].split(":")