Python:如何根据给定条件在嵌套列表中连接字符串的第一个和最后一个字符



我有一个这种形式的嵌套列表,我想在末尾提取字符串R和数字。输出可以是嵌套列表或字典中的列表。

my_list = [['Race 1', 'Race 2', 'Race 3', 'Race 4', 'Race 5', 'Race 6', 'Race 7', 'Race 8', 'Race 9', 'Race 10'], 
['Race 1', 'Race 2', 'Race 3', 'Race 4', 'Race 5', 'Race 6', 'Race 7', 'Race 8', 'Race 9', 'Race 10'], 
['Race 1', 'Race 2', 'Race 3', 'Race 4', 'Race 5', 'Race 6', 'Race 7', 'Race 8', 'Race 9', 'Race 10', 'Race 11', 'Race 12'], 
['Race 1', 'Race 2', 'Race 3', 'Race 4', 'Race 5', 'Race 6', 'Race 7', 'Race 8', 'Race 9', 'Race 10', 'Race 11', 'Race 12'], ['Race 1', 'Race 2', 'Race 3', 'Race 4', 'Race 5', 'Race 6', 'Race 7', 'Race 8', 'Race 9', 'Race 10', 'Race 11', 'Race 12']
]

我必须遍历内部列表并提取末尾的字母和数字。我得到了下面的输出。但那不是我想要的。

race_list = []
for race_number in my_list:
for i in race_number :
m = re.split(' |a',i)
new_str = "".join(m[::len(m)-1]).strip()
race_list.append(new_str)

['R1', 'R2', 'R3', 'R4', 'R5', 'R6', 'R7', 'R8', 'R9', 'R10', 'R1', 'R2', 'R3', 'R4', 'R5', 'R6', 'R7', 'R8', 'R9', 'R10', 'R1', 'R2', 'R3', 'R4', 'R5', 'R6', 'R7', 'R8', 'R9', 'R10', 'R11', 'R12', 'R1', 'R2', 'R3', 'R4', 'R5', 'R6', 'R7', 'R8', 'R9', 'R10', 'R11', 'R12', 'R1', 'R2', 'R3', 'R4', 'R5', 'R6', 'R7', 'R8', 'R9', 'R10', 'R11', 'R12']

我的输出应该是这个形式

[   ['R1', 'R2', 'R3', 'R4', 'R5', 'R6', 'R7', 'R8', 'R9', 'R10'], 
['R1', 'R2', 'R3', 'R4', 'R5', 'R6', 'R7', 'R8', 'R9', 'R10'],
['R1', 'R2', 'R3', 'R4', 'R5', 'R6', 'R7', 'R8', 'R9', 'R10'],
['R11', 'R12', 'R1', 'R2', 'R3', 'R4', 'R5', 'R6', 'R7', 'R8', 'R9', 'R10'],
['R11', 'R12', 'R1', 'R2', 'R3', 'R4', 'R5', 'R6', 'R7', 'R8', 'R9', 'R10', 'R11', 'R12']
]

使用正则表达式获取第一个字符和末尾的数字。

race_list = []
for race_number in my_list:
new_rn = []
for i in race_number:
match = re.search(r'^(.).*?(d+)$', i)
new_rn.append(match.group(1) + match.group(2))
race_list.append(new_rn)

最新更新