Найдите уникальные значения в строковой переменной python и разделите их запятой для критериев SQL

#python #pandas

Вопрос:

Утро,

Мне нужно получить уникальные элементы в строке, которые будут использоваться как часть критериев SQL.

 sales_code_string_RFQ = 'AAA','BBB','CCC','DDD','AAA','EEE',.......  

Цель состоит в том, чтобы получить уникальный список кодов продаж sales_code_string_RFQ , разделенных , Следующее работает, но кажется неэффективным. Есть какие-нибудь предложения по улучшению?

 # Covert string to list sales_code_string_RFQ = sales_code_string_RFQ.split(',') print('2. Split sales_code_string_RFQ:') print(sales_code_string_RFQ)  ["'AAA'", "'BBB'", "'CCC'", "'DDD'", "'AAA'", "'EEE'".....]  print('3. Get unique values and convert to list:') sales_code_string_RFQ = list(set(sales_code_string_RFQ)) print(sales_code_string_RFQ)  ["'AAA'", "'BBB'", "'CCC'", "'DDD'", "'EEE'".....]  print('4.Covert list to string:') sales_code_string_RFQ = ",".join(sales_code_string_RFQ) print(sales_code_string_RFQ) print("", end='n')  

Окончательный правильный вывод:

 'AAA', 'BBB', 'CCC', 'DDD', 'EEE' ,....  

Комментарии:

1. Ваш вопрос неясен. Каков точный результат, которого вы пытаетесь достичь? Это список строк, всего одна строка? Я могу помочь вам с этой проблемой, поэтому, пожалуйста, проясните это для меня.

2. Строка (sales_code_string_RFQ), в которой удалены все повторяющиеся записи. Каждый элемент разделен запятой. Примечание. sales_code_string_RFQ не является списком

3. хорошо, функция списка удалена

Ответ №1:

Предполагая, что у вас есть список кодов продаж, подобных этому:

 sales_codes = ["'AAA'", "'BBB'", "'CCC'", "'DDD'", "'AAA'", "'EEE'"]  

Встроенный класс Python set отсортирует список для вас и возьмет из него только уникальные элементы:

 unique_codes = set(sales_codes)  

Затем вы можете объединить их вместе, чтобы сформировать критерий запроса:

 criterion = ', '.join(set(sales_codes))