О разделении (функция Python) - PullRequest
0 голосов
/ 26 апреля 2020

Мой вопрос о функции разделения

У меня есть кортеж:

name = 'test_1_1', 'test_1_2', 'test_1_3-4-5'...

Я хочу получить что-то вроде этого:

['test_1_1', 'test_1_2', 'test_1_3', 'test_1_4', 'test_1_5']

Как я мог сделать это?

Ответы [ 2 ]

0 голосов
/ 26 апреля 2020

Предполагая, что ваш string действительно tuple, вы можете использовать:

import re

name = 'test_1_1', 'test_1_2', 'test_1_3-4-5'
new_name = [re.split(r"[_-]", x) for x in name]
# [['test', '1', '1'], ['test', '1', '2'], ['test', '1', '3', '4', '5']]

Или, и, поскольку я не до конца понял ваш вопрос, вам может понадобиться:

new_name = [re.sub(r"[_-]", ",", x) for x in name ]
# ['test,1,1', 'test,1,2', 'test,1,3,4,5']

Демо

0 голосов
/ 26 апреля 2020

Ваш вопрос недопустим, но

Работает ли это для вас:

names = 'test_1_1', 'test_1_2', 'test_1_3-4-5'                                        

res = [] 
for name in names: 
    if '-' not in name: 
        res.append(name) 
        continue 
    parts = name.split('_') 
    for sub in parts[2].split('-'): 
        res.append(f'{parts[0]}_{parts[1]}_{sub}') # This is what makes sense to me but maybe you want the following: 
        # res.append(f'{parts[0]},{parts[1]},{sub}')



print(res)

вывод:

['test_1_1', 'test_1_2', 'test_1_3', 'test_1_4', 'test_1_5']
...