#python #python-3.x #list
Вопрос:
Я пытаюсь сравнить две или более строк в списке. Ввод, то, что было опробовано, вывод, полученный с использованием метода, опробованного против ожидаемого.
Ввод:
lis = [ 'concat(tb1.col1, tb1.col2, tb1.col3) as alias1, tb1.col4, case when tb2.col2gt;1 then 1 else 0', 'concat(tb1.col1, tb1.col2, tb1.col3) as alias1, concat(tb2.col1, tb2.col2, tb2.col3) as alias2, case when tb1.col1gt;1 then 1 else 0, tb3.col1' ]
Что пробовали:
for c in range(len(lis)-1): print(list(set(lis[c 1].split(', ')) - set(lis[c].split(', '))))
Полученный результат:
['tb3.col1', 'tb2.col2', 'concat(tb2.col1', 'tb2.col3) as alias2', 'case when tb1.col1gt;1 then 1 else 0 end as alias4']
Ожидаемый результат:
['concat(tb1.col1, tb1.col2, tb1.col3) as alias1', 'tb1.col4', 'case when tb2.col2gt;1 then 1 else 0 end as alias3', 'concat(tb2.col1, tb2.col2, tb2.col3) as alias2', 'case when tb1.col1gt;1 then 1 else 0 end as alias4', 'tb3.col1']
Пожалуйста, помогите мне!
Комментарии:
1. Вы просто пытаетесь разделить элементы в списке на запятые?
2. нет, все не так просто. Разделение на основе запятой приведет к дальнейшему разделению
concat(tb1.col1, tb1.col2, tb1.col3) as alias1
, в то время как нам это нужно как один элемент.