"None for c in" 代表什么?

What does "None for c in" stand for?

我在看一个示例代码,它说:

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

输出为 'A.B!?' 。 在我看来 ord(c): 是一个 "dictionary",如果 string(subj) 中的每个元素都满足 c 那么 c 将被删除。

但是我无法完全理解这个说法,我不明白:

  1. c是指字符串的每一个元素吗?
  2. "None for c"是什么意思?
  3. 如果我简单地将"chars_to_remove"替换为"k",那么输出将变为'A.B!c?',为什么?

请帮我理清思路。谢谢。

你应该把它读成 ord(c): None 停顿 for c in 'chars_to_remove

发生的情况是,您在字典中为字符串 'chars_to_remove'.

的每个字符 c 插入 ord(c): None

你读错了

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

ord(c):Nonefor c in 'chars_to_remove'

for c in 'chars_to_remove' 遍历此字符串中的每个字符 'chars_to_remove'

ord(c):None 添加到字典并在 translate() 中使用时,它会将那些字符替换为 None

此字符串中您的主题中唯一的字符是 'c',因此您的主题变为 'A.B!?'