Используйте регулярные выражения для разделения элементов в понимании списка после символа - PullRequest
0 голосов
/ 21 октября 2019

Я хотел бы разбить список, состоящий из символов после точки разделения, в другой список

Я думаю, что ответ будет таким:

[re.sub(r'......', '', i) for i in x] 

Вот список, который я хочуразбить

['260=2.31', '264=0.68', '265=0.25', '266=3.56', '267=0.05', '268=6.71']

, поместив все перед "=" в один список

['260','264','265','266','267','268']

и все после "=" в другой список

['2.31','0.68','0.25','3.56','0.05','6.71']

спасибо!

Ответы [ 3 ]

3 голосов
/ 21 октября 2019
>>> l = ['260=2.31', '264=0.68', '265=0.25', '266=3.56', '267=0.05', '268=6.71']
>>> l1, l2 = zip(*[item.split("=") for item in l])
>>> l1
('260', '264', '265', '266', '267', '268')
>>> l2
('2.31', '0.68', '0.25', '3.56', '0.05', '6.71')
0 голосов
/ 21 октября 2019

Если вы действительно хотите использовать регулярные выражения, вы можете сделать:

import re
l = ['260=2.31', '264=0.68', '265=0.25', '266=3.56', '267=0.05', '268=6.71']
matches = [re.match(r'([.\d]*)=([.\d]*)', x) for x in l]
l1 = [m.group(1) for m in matches]
l2 = [m.group(2) for m in matches]

print(l1)
print(l2)

, который производит;

['260', '264', '265', '266', '267', '268']  
['2.31', '0.68', '0.25', '3.56', '0.05', '6.71']
0 голосов
/ 21 октября 2019
myList = ['260=2.31', '264=0.68', '265=0.25', '266=3.56', '267=0.05', '268=6.71']
listA = list(
    map(
        lambda x: x.split("=")[0],
        myList
    )
)
listB = list(
    map(
         lambda x: x.split("=")[1],
         myList
    )
)

Редактировать: Подход Тима Пицкера намного лучше моего.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...