список python в dict

Вот моя проблема.

У меня есть список вроде этого (из TXT-файла, который я уже присвоил элементу списка):

sharenames = ['VIAB:Viacom Inc.', 'DLTR:Dollar Tree Inc.', 'AAL:American Airlines Group Inc.', 'ROST:Ross Stores Inc.', 'VRTX:Vertex Pharmaceuticals Incorporated', 'WDC:Western Digital Corp', 'NCLH:Norwegian Cruise Line Holdings Ltd', 'SWKS:Skyworks Solutions Inc.', 'BBBY:Bed Bath & Beyond Inc.', 'BIDU:Baidu Inc (ADR)', 'ENDP:Endo International plc', '"FRA:DBK":Deutsche Bank AG', '"FRA:FME":Fresenius Medical Care AG & Co. KGaA', '"FRA:DAI":Daimler AG'] 

Я хочу создать словарь, к которому я могу получить доступ, например

 wertA = sharenames["FRA:FME"] # as an example 

или

 wertA = sharenames[ROST] # as an example 

После нескольких часов попыток и ошибок я надеюсь, что вы можете мне помочь.

4 Solutions collect form web for “список python в dict”

Вы можете создать сопоставление из списка кортежей:

 data = ['VIAB:Viacom Inc.', 'DLTR:Dollar Tree Inc.', 'AAL:American Airlines Group Inc.', 'ROST:Ross Stores Inc.', 'VRTX:Vertex Pharmaceuticals Incorporated', 'WDC:Western Digital Corp', 'NCLH:Norwegian Cruise Line Holdings Ltd', 'SWKS:Skyworks Solutions Inc.', 'BBBY:Bed Bath & Beyond Inc.', 'BIDU:Baidu Inc (ADR)', 'ENDP:Endo International plc', '"FRA:DBK":Deutsche Bank AG', '"FRA:FME":Fresenius Medical Care AG & Co. KGaA', '"FRA:DAI":Daimler AG'] mapping = dict(entry.rsplit(':', 1) for entry in data) 

Заметьте, что я использую string.rsplit максимум для одного разделения (второй аргумент). Кроме того, это предполагает, что у вас нет двоеточий в ваших значениях.

Элементы в картографии:

 ENDP -> Endo International plc WDC -> Western Digital Corp VIAB -> Viacom Inc. AAL -> American Airlines Group Inc. DLTR -> Dollar Tree Inc. BBBY -> Bed Bath & Beyond Inc. "FRA:DAI" -> Daimler AG VRTX -> Vertex Pharmaceuticals Incorporated "FRA:FME" -> Fresenius Medical Care AG & Co. KGaA SWKS -> Skyworks Solutions Inc. NCLH -> Norwegian Cruise Line Holdings Ltd ROST -> Ross Stores Inc. "FRA:DBK" -> Deutsche Bank AG BIDU -> Baidu Inc (ADR) 

Чтобы очистить ключи от двойных кавычек, вы можете:

 clean_mapping = {k.replace('"',''): v for k, v in mapping} 

Это может сделать то, что вы хотите:

 sharenames = ['VIAB:Viacom Inc.', 'DLTR:Dollar Tree Inc.', 'AAL:American Airlines Group Inc.', 'ROST:Ross Stores Inc.', 'VRTX:Vertex Pharmaceuticals Incorporated', 'WDC:Western Digital Corp', 'NCLH:Norwegian Cruise Line Holdings Ltd', 'SWKS:Skyworks Solutions Inc.', 'BBBY:Bed Bath & Beyond Inc.', 'BIDU:Baidu Inc (ADR)', 'ENDP:Endo International plc', '"FRA:DBK":Deutsche Bank AG', '"FRA:FME":Fresenius Medical Care AG & Co. KGaA', '"FRA:DAI":Daimler AG'] # Conversions; sharenames = (sharename.rsplit(':',1) for sharename in sharenames) sharenames = ((sharename[0].strip('"'),sharename[1]) for sharename in sharenames) sharenames = dict(sharenames) print sharenames['ROST'] print sharenames["FRA:FME"] 

Вам нужно разделить каждый элемент на «:». Следующий код делает желаемый словарь:

 sharenames = {} for item in lst: sharenames[":".join(item.split(":")[:-1])] = item.split(":")[-1] 

Пример: sharenames["ENDP"] >>> 'Endo International plc'

 d = {} for e in sharenames: t = tuple(string.rsplit(e,':', 1)) d[re.sub('\"','',t[0])] = t[1] for k,v in d.iteritems(): print k,v 

ENDP Endo International plc

WDC Western Digital Corp

VIAB Viacom Inc.

FRA: DBK Deutsche Bank AG

AAL American Airlines Group Inc.

DLTR Dollar Tree Inc.

BBBY Bed Bath & Beyond Inc.

VRTX Vertex Pharmaceuticals Incorporated

SWKS Skyworks Solutions Inc.

NCLH Norwegian Cruise Line Holdings Ltd

ROST Ross Stores Inc.

FRA: DAI Daimler AG

FRA: FME Fresenius Medical Care AG & Co. KGaA

BIDU Baidu Inc (ADR)

  • python: создать список кортежей из списков
  • Как сравнить два списка в python и совпадениях возврата
  • как извлечь вложенные списки?
  • Python: Есть ли способ разделить строку чисел на каждый третий номер?
  • Определите, является ли список Python равным 95%?
  • Python append () vs. + operator в списках, почему они дают разные результаты?
  • Python: определение списка определенного типа объекта
  • Стоимость функций списка в Python
  • Python - лучший язык программирования в мире.