PYTHON 3 (1) Словарь Значение верхнего регистра Python присутствует в одном ключе. (2) Почему набор типов данных в python не возвращает True?

(1) фрагмент, который принимает словарь и верхний регистр каждого значения в словаре и устанавливает это значение обратно в словарь по тому же ключу, например

Данный:

d = {'a': ['amber', 'ash'], 'b': ['bart', 'betty']} 

Результат:

 {'a': ['AMBER', 'ASH'], 'b': ['BART', 'BETTY']} 

(2) Почему тип данных SET не возвращает TRUE элемент при печати? Например. {'hi', 1, True} возвращает только {'hi', 1}

Для (1) я использую что-то вроде этого:

  d = {'a': ['amber', 'ash'], 'b': ['bart', 'betty']} d.update((k, v.upper()) for k, v in d.items()) 

3 Solutions collect form web for “PYTHON 3 (1) Словарь Значение верхнего регистра Python присутствует в одном ключе. (2) Почему набор типов данных в python не возвращает True?”

(1)

 d2 = {key:[name.upper() for name in names] for key, names in d.items()} 

(2)

Это похоже на то, что True == 1 дает True , что и использует Set, чтобы проверить, добавлено ли добавленное значение в Set, и поэтому его нужно игнорировать.

Ваша попытка:

 d.update((k, v.upper()) for k,v in d.items()) 

Это не работает. Например, v – это list , вы не можете upper список …

Это преобразование лучше сделать, используя понимание словаря, чтобы перестроить новую версию d . Вы можете сделать верхнюю часть для каждого значения, используя понимание списка:

 d = {k:[v.upper() for v in vl] for k,vl in d.items()} 

Для вашего второго вопроса: с 1==True , set сохраняет только первый вставленный, который здесь 1 . но может быть True : пример:

 >>> {True,1} {1} >>> {True,1,True} {True} >>> {1,True} {True} >>> 

более детерминированным: передайте list для сборки set вместо использования set нотации:

 >>> set([True,1]) {True} >>> set([1,True]) {1} 

(1) Может быть короче, только в одной строке, как показывают другие ответы, но здесь есть компромисс между сложностью и «Pythonity»:

 d = {'a': ['amber', 'ash'], 'b': ['bart', 'betty']} for k in d: d[k] = [i.upper() for i in d[k]] print(d) 

ВЫВОД:

 {'a': ['AMBER', 'ASH'], 'b': ['BART', 'BETTY']} 

(2) Поскольку True == 1 является истинным, а объекты, заданные Python, имеют только элементы, которые являются различиями между ними.

  • Форма метода POST в lxml вызывает TypeError с submit_form
  • Форматирование текста в таблице на Python
  • Что означает символ -> (символ стрелки больше, чем стрелка) в сигнатуре метода Python?
  • Использование Python «рейз из»
  • Аккуратный способ выскакивания ключа, значение PAIR из словаря?
  • Unorderable Types: int () <str ()
  • Как использовать conda для создания отдельных сред python, каждый из которых имеет разные $ PYTHONPATH
  • странное поведение python с смешиванием глобальных переменных / параметров и функции с именем «top»
  • Передача файлов-подобных объектов в вызовы ctypes
  • StringIO в python3
  • KeyError при доступе к словарю?
  • Python - лучший язык программирования в мире.