如何更新字符串列表中的数字组件

时间:2017-11-13 11:18:45

标签: python string python-3.x list

我有一个清单:

['a1', 'a2', 'a3']

我想更新它,以便每个数字组件增加1:

['a2', 'a3', 'a4']

最有效的方法是什么?

4 个答案:

答案 0 :(得分:3)

如果您的列表保留此表单,这应该很好:

for x in range(len(l)):
    l[x] = l[x][0] + str(int(l[x][1:]) + 1)

适用于任何号码,如果" a" part更长,将l[x][**1**:]调整为无数字符串的长度。

答案 1 :(得分:0)

我认为你最好的选择是使用' 2d-list' (我不知道这是否是Python中的正确术语):

myList = [['a',1],['a',2],['a',3]...]

您将使用print(myList[n][0] + str(myList[n][1]))打印元素,其中n =您要打印的元素。增加'数字组件'如果你想将它递增1,你会使用myList[n][1] += 1

答案 2 :(得分:0)

此解决方案适用于您提供的示例:

import re
lst = ['a1', 'a2', 'a3']

def increment(word):
    return re.findall('[a-z]+', word)[0] + str(int(re.findall('\d+', word)[0])+1)

print([increment(i) for i in lst])
#['a2', 'a3', 'a4']

答案 3 :(得分:0)

请尝试以下代码

import re

lst = ['a1', 'a2', 'a3']
print map(lambda item:(item[0] + str(int(re.search(r'\d+', item).group())+1)), lst)

此代码使用正则表达式查找列表的每个元素中的整数值,并递增整数值并连接相应的字符串值。

参考文献: -

Python map function

Python lambda (Anonymous) Function

Python regular expression - search method