2015-09-17 4 views
-1

Я новичок в python 2.7. Я хотел бы создать некоторую функцию, которая знает, какие переменные в данной вероятностной нотации.Как обрабатывать вероятность нотации в python?

Например: с учетом вероятности P (A, B, C | D, E, F) в качестве ввода строки. Функция должна возвращать список событий ['A', 'B', 'C'] и список выборочных пробелов ['D', 'E', 'F']. Если невозможно вернуть два списка за одно и то же время. Возврат списка из двух списков будет прекрасным.

В итоге: Входной сигнал: SomeFunction ('Р (А, В, С | D, Е, F),')

Ожидаемые результаты: [[ 'А', 'В', 'С' ], [ 'D', 'E', 'F']]

Спасибо заранее

+0

Итак, по сути, вам нужно разобрать выражение? И, я предполагаю, ожидаемый результат фактически есть «[['A', 'B', 'C'], ['D', 'E', 'F']]'? – fjarri

+0

Opps. Да. Ожидаемый результат должен быть [['A', 'B', 'C'], ['D', 'E', 'F']] –

+0

В зависимости от формата вашего выражения вам может понадобиться парсер или просто регулярное выражение или несколько использований ['str.split()'] (https://docs.python.org/3.5/library/stdtypes.html#str.split). Я предлагаю вам попробовать последнее. – fjarri

ответ

0

простая реализация перебором. Как отметил @fjarri, если вы хотите сделать что-то более сложное, вам может понадобиться парсер (например, PyParser) или хотя бы некоторые регулярные выражения.

def somefunction(str): 
    str = str.strip()[str.index("(")+1:-1] 
    left, right = str.split("|") 
    return [left.split(","), right.split(",")] 
Смежные вопросы