У меня есть result
список, в котором есть оба упорядоченных элемента, таких как A, B и B, комбинация A или это могут быть 1,2 и 2,1 и т. Д., Если мы нашли какой-либо обратный комбис для A, B или 1,2 или 3211, 3222 или что-то еще, после чего обратный комбис должен храниться в target_list
, а правильный упорядоченный комбис должен храниться в source_list
.Кроме того, если мы не найдем никаких обратных комбинаций, добавьте это к source_list
, но target_list
должен содержать только обратные комбинации в source_list
, если мы нашли.
Вот мой код, яполучая только A, B combis, вы можете сказать, как я могу сделать это динамически, как вместо A это может быть что угодно, а вместо B это может быть что угодно, что должно удовлетворять объясненному выше условию
result = [('A','B', 'IP1','GP1'), ('B', 'C', 'IP2','GP2'),('A', 'C', 'IP3','GP2'),('A','B', 'IP4','GP2'),('D', 'Z', 'IP5','GP2'),('B', 'A', 'IP6','GP2'), ('C','B','IP7','GP2'), ('C', 'A', 'IP8','GP2'),('C','B','IP9','GP2')]
a=[i for i,v in enumerate(result) if v[:2]==('B','A')]
Source_list,target_list=result[:a[0]],result[a[0]:]
print(Source_list)
print(target_list)
вывод:
[('A', 'B', 'IP1', 'GP1'), ('B', 'C', 'IP2', 'GP2 '), (' A ',' C ',' IP3 ',' GP2 '), (' A ',' B ',' IP4 ',' GP2 '), (' D ',' Z ','IP5 ',' GP2 ')][(«B», «A», «IP6», «GP2»), («C», «B», «IP7», «GP2»), («C», «A», «IP8»,«GP2»), («C», «B», «IP9», «GP2»)]