首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >替换列表中的项,python

替换列表中的项,python
EN

Stack Overflow用户
提问于 2012-05-11 21:42:08
回答 3查看 2K关注 0票数 4

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

代码语言:javascript
复制
Item_has_was_updated_May_2010
Item_updated_Apr_2011
Item_got_updated_Sept_2011

我想遍历字符串列表,并更新字符串的最后两个部分。月份和年份。剩下的字符串我想保持不变。月份和年份将从我前面在脚本中设置的变量中提取,所以让我们调用月份x和年份y。

我的做法是:

  1. 迭代字符串列表
  2. 拆分每个字符串,用“_”
  3. 替换最后2项
  4. ,将项目与替换项

G 210重新连接起来

月份和年份将从我前面在脚本中设置的变量中提取,所以让我们调用月份x和年份y。

如果有人能提出一个方法,这是值得赞赏的。

EN

回答 3

Stack Overflow用户

发布于 2012-05-11 21:44:42

通过使用str.rsplit,您可以不使用正则表达式来完成这一任务。

代码语言:javascript
复制
yourlist = [s.rsplit('_', 2)[0] + '_' + x + '_' + y for s in yourlist]

看到它在网上工作:ideone

如果要使用格式而不是字符串连接,请尝试如下:

代码语言:javascript
复制
yourlist = ['{}_{}_{}'.format(s.rsplit('_', 2)[0], x, y) for s in yourlist]

看到它在网上工作:ideone

票数 9
EN

Stack Overflow用户

发布于 2012-05-11 21:51:58

我不认为你真的需要。

你可以用这样的东西:

代码语言:javascript
复制
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))
票数 2
EN

Stack Overflow用户

发布于 2012-05-12 03:47:19

代码语言:javascript
复制
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
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10559018

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档