2014-12-05 2 views
0

У меня есть сценарий, который принимает файл txt со списком атрибутов, которые входят в качестве входных данных для программы. Для каждого атрибута он выдает имя атрибута, если он удовлетворяет условиям сценария. Однако каждый атрибут может выполняться несколько раз, а вывод печатает его много раз. Я хотел бы сделать это сейчас:Отформатировать инструкцию печати в Python

condition 1 satisfied by A,B,C,D 
condition 2 satisfied by A,B 
condition 3 satisfied by B,D 

Как это сделать? Мой текущий вывод выглядит

A 
A 
condition 3 not satisfied by A 
B 
B 
B 
condition 1 not satisfied by C 
condition 2 not satisfied by C 
C 
D 
condition 2 not satisfied by D 
D 
+0

Какая форма является удовлетворяющими атрибутами до того, как они будут напечатаны? –

+1

Просьба показать [минимальный пример] (http://stackoverflow.com/help/mcve) кода и данных и объяснить, в чем именно разница между ожидаемыми и фактическими результатами, и тем, что вы пытались сделать до сих пор. – jonrsharpe

ответ

0

как об этом (в псевдокоде питона)

import collections 
result = collections.defaultdict(list) 
for attr in [A, B, C, D]: 
    for cond in [condition1, condition2, ...]: 
    if attr satisfies cond: 
     result[cond].append(attr) 

print result 

Выход:

{cond1: [A, B], cond2: [A], cond3: [C,D], ...} 

Я не уверен, что это то, что вы хотите. Вы не указали четко (достаточно), как выглядит ваш ввод и что вы хотите в качестве вывода.

Смежные вопросы