Каков наилучший способ заставить пользователя войти в список (или сингулярный) номер, чтобы удалить строковый ключ из словаря?Список пользователей для удаления ключей из Словаря
до сих пор это, где я.
Мой словарь для удаления значений из (словарь генерируется так, что он будет меняться).
d = {'Seven': 22, 'Six': 0, 'Three': 35, 'Two': 0, 'Four': 45, 'Five': 34, 'Eight': 0}
1) Итак, как мне получить вход, это мой первый запрос. Это была моя попытка, но не удалось.
>>> s = raw_input('1 2 3 4')
1 2 3 4
>>> numbers = map(str, s.split())
>>> numbers
[]
>>> s = raw_input('1 2 3 4')
1 2 3 4
>>> numbers = map(int, s.split())
>>> numbers
[]
2) Как бы преобразовать ints в форму слова? Здесь диапазон ограничен, в словаре не будет больше 20 записей. Итак, моя первоначальная мысль заключалась в том, чтобы создать ключ для интерпретации информации.
e = {'One': 1, 'Two': 2, 'Three': 3, 'Four': 4}
и это работает не так, как ожидалось, удаляя только одну запись.
>>> e = {'One': 1, 'Two': 2, 'Three': 3, 'Four': 4}
>>> {k:v for k,v in e.items() if v!=(1 and 3)}
{'Four': 4, 'Two': 2, 'One': 1}
Мое намерение состоит в том, чтобы удалить значения из d, а не e. Это также непрактично, так как я не знаю, сколько записей вводит пользователь, поэтому использование операторов «и» кажется неправильным.
Как конвертировать пользовательский ввод с в е? – sayth
@sayth Обновлен мой ответ несколькими изменениями. – aIKid
Что-то об этом не работает >>> s = raw_input («Enter Numbers:») Введите цифры: 1 2 3 4 >>> s '1 2 3 4' >>> numbers = map (int, s.split()) >>> номера [1, 2, 3, 4] >>> m = ['One', 'Two', 'Three', 'Four', 'Five' , «Шесть», «Семь», «Восьмерка») >>> e = [i for i in m, если i in s] >>> e [] >>> e = [i for i in m if i in numbers] >>> e [] – sayth