从指定索引处的字符串列表中删除不需要的子字符串

2024-04-24 23:51:57 发布

您现在位置:Python中文网/ 问答频道 /正文

python新手,我想去掉两个sting的前缀。只留下J之前的所有内容并删除.json

我尝试使用[:1],但它删除了整个第一个字符串

name = ['190523-105238-J105150.json',
'190152-105568-J616293.json']

我想输出这个

name = ['J105150',
'J616293']

Tags: 字符串namejson内容新手stingj616293j105150
3条回答

执行[:1]将对当前列表进行切片,以仅获取索引1之前的元素,因此只有索引0处的元素才会存在。 这不是你想要的。 正则表达式可以帮助您实现目标

import re
output = [re.search(r'-([\w+]).json', x).group(0) for x in your_list]

您可以在列表理解中使用split()

name = ['190523-105238-J105150.json',
'190152-105568-J616293.json']

print([x.rsplit('-', 1)[1].split('.')[0] for x in name])
# ['J105150', 'J616293']

您可以使用find()函数和数组拼接

name = ['190523-105238-J105150.json' ,'190152-105568-J616293.json']
for i in range(len(name)):
    start_of_json = name[i].find('.json')
    start_of_name = name[i].find('J')
    name[i] = name[i][start_of_name:start_of_json]

相关问题 更多 >