2016-04-10 5 views
0

В питоне, У меня есть словарь, состоящий из следующих действий:удаление и хранение списка из словаря

[ ['FOXP2_MOUSE', 'AminoAcidSequence1'], ['FOXP2_RAT','AminoAcidSequence2'], ['FOXP2_DOG', 'AminoAcidSequence3'] ]. 

Я пытаюсь удалить ключевидный FOXP2_DOG из словаря и поместить его в одиночку новый словарь. Я пробовал разные методы: del и .remove безрезультатно.

+0

Это не ДИКТ, это список списков. – MattDMo

ответ

0

так:

>>> my_list= [ ['FOXP2_MOUSE', 'AminoAcidSequence1'], ['FOXP2_RAT','AminoAcidSequence2'], ['FOXP2_DOG', 'AminoAcidSequence3'] ] 
>>> my_dict = dict(my_list) 
>>> my_dict 
{'FOXP2_RAT': 'AminoAcidSequence2', 'FOXP2_MOUSE': 'AminoAcidSequence1', 'FOXP2_DOG': 'AminoAcidSequence3'} 
>>> my_new_dict = {} 
>>> my_new_dict['FOXP2_MOUSE'] = my_dict.pop('FOXP2_MOUSE') 
>>> my_dict 
{'FOXP2_RAT': 'AminoAcidSequence2', 'FOXP2_DOG': 'AminoAcidSequence3'} 
>>> my_new_dict 
{'FOXP2_MOUSE': 'AminoAcidSequence1'} 
+1

Это не отвечает на вопрос. OP хочет удалить «FOXP2_DOG» и поместить его в новый dict. – MattDMo

+0

@MattDMo обновить решение – Hackaholic

+0

И все же не так. 'NameError: name 'my_new_dict' не определен' – MattDMo

0
my_data = [ ['FOXP2_MOUSE', 'AminoAcidSequence1'], ['FOXP2_RAT','AminoAcidSequence2'], ['FOXP2_DOG', 'AminoAcidSequence3'] ] 

def custom_filter_data(data, key): 

    final_res = [] 

    for i in range(len(data)): 
     if data[i][0] == key: 
      final_res.append(data[i]) 
      del data[i] 

    return data, final_res 

results = custom_filter_data(my_data,'FOXP2_DOG') 
old = results[0] 
new = results[1] 
print old 
print new 
+0

Спасибо supamaze !! Это сработало –

+0

@ jaimed_2003 Приятно было помочь, можете ли вы пометить этот ответ, если найдете его наиболее полезным? – supamaze

Смежные вопросы