Нет необходимости преобразовывать в set
, а затем обратно в list
. Пусть set
сделает всю работу за вас, если только нет причины, по которой вам явно нужен list
.
С проблемой, которую вы описываете, defaultdict
звучит как ваше лучшее решение. defaultdict
- это dict
, который не вызывает KeyError
, если мы пытаемся манипулировать им до того, как он будет установлен. Скорее он "по умолчанию" соответствует указанному нами типу. В этом случае мы укажем set
.
from collections import defaultdict
item_producer_dict = defaultdict(set)
for row_idx in range(3, wb_sheet.nrows):
producer = str(wb_sheet.cell(row_idx, 1).value) # 1 FOR COLUMN B
items = str(wb_sheet.cell(row_idx, 8).value) # 8 FOR COLUMN I
producer_list_local = producer.replace(', ',',').split(',')
for row_idx in item_list :
if producer in producers_w_coordinates:
item_producer_dict[row_idx].add(producer)
При этом, если это рабочий код, это скорее вопрос для https://codereview.stackexchange.com/.