Что означает «Нет для c in»? - PullRequest
0 голосов
/ 11 марта 2020

Я ищу пример кода, он сказал:

subj = 'A.B!c?'
dd = {ord(c):None for c in 'chars_to_remove'}
subj.translate(dd) 

Вывод 'AB!?' . Мне кажется, ord (c): это «словарь», если каждый элемент в строке (subj) соответствует c, тогда c будет удалено.

Но я не могу получить полную картину из этого утверждения я не понимаю:

  1. Является ли c означает каждый элемент строки?
  2. Что означает "Нет для c"?
  3. Если я просто заменю "chars_to_remove" на "k", тогда вывод будет 'AB! c?' , почему?

Пожалуйста, помогите очистить мой разум. Спасибо.

Ответы [ 2 ]

2 голосов
/ 11 марта 2020

Вы должны прочитать это как ord(c): None пауза for c in 'chars_to_remove.

Что произойдет, если вы вставите ord(c): None в ваш голос, для каждого символа c вашей строки 'chars_to_remove'.

1 голос
/ 11 марта 2020

Вы читаете это неправильно

{ord(c):None for c in 'chars_to_remove'}

равно ord(c):None и for c in 'chars_to_remove'

for c in 'chars_to_remove' проходит через каждый символ в этой строке 'chars_to_remove'

ord(c):None при добавлении в словарь и использовании в translate() он заменяет эти символы на None

Единственный символ в этой строке, который находится в вашем subj, это 'c', поэтому ваш subj становится 'AB !?'

...