4

我有一个这样的字符串列表:

Item_has_was_updated_May_2010
Item_updated_Apr_2011
Item_got_updated_Sept_2011

我想遍历字符串列表并更新字符串的最后 2 部分。月份和年份。其余的字符串我想保持不变。月份和年份将取自我之前在脚本中设置的变量,因此我们将月份称为 x 和年份 y。

我的方法是:

  1. 遍历字符串列表
  2. 用“_”分割每个字符串
  3. 替换最后 2 项
  4. 将项目与替换的项目重新连接在一起

月份和年份将取自我之前在脚本中设置的变量,因此我们将月份称为 x 和年份 y。

如果有人可以提出一种方法,我们将不胜感激。

4

3 回答 3

9

您可以使用以下方法在不使用正则表达式的情况下执行此操作str.rsplit

yourlist = [s.rsplit('_', 2)[0] + '_' + x + '_' + y for s in yourlist]

在线查看它:ideone


如果你想使用格式而不是字符串连接,试试这个:

yourlist = ['{}_{}_{}'.format(s.rsplit('_', 2)[0], x, y) for s in yourlist]

在线查看它:ideone

于 2012-05-11T21:44:42.403 回答
2

我不认为你真的需要're'。
你可以使用这样的东西:

m="dec"
y=2012
l=["Item_has_was_updated_May_2010",
    "Item_updated_Apr_2011",
    "Item_got_updated_Sept_2011"]
r=[]
for s in l:
    t=s.split("_")
    r.append("_".join(t[:-2])+"_%s_%s"%(m,y))
于 2012-05-11T21:51:58.510 回答
2
lst = [
   'Item_has_was_updated_May_2010',
   'Item_updated_Apr_2011',
   'Item_got_updated_Sept_2011',
]
month='Sep';year='2012'
for s in lst:
        list=s.split('_')
        list[-2:]=(month,year)
        r=''
        for a in list:
                r=r+"%s_"%a
        r=r[:-1]
        print r
于 2012-05-12T03:47:19.873 回答