Python:创建一个从 A 到 Z 的空字典,没有 J 和 Y [重复]

Posted

技术标签:

【中文标题】Python:创建一个从 A 到 Z 的空字典,没有 J 和 Y [重复]【英文标题】:Python: Create an empty dict from A to Z without J and Y [duplicate] 【发布时间】:2020-05-27 19:32:24 【问题描述】:

我想创建一个从 A 到 Z 没有 J 和 Y 的空字典。

my_dict = x: [0] * 15 for x in string.ascii_uppercase

有了这个,我创建了一个包含所有字母的空字典,但我想要一个没有 J 和 Y 的列表。我该怎么做。

非常感谢您的帮助:)

【问题讨论】:

my_dict = x: [0] * 15 for x in string.ascii_uppercase if not in 'YJ' 应该可以工作。 没有足够的使用字典理解的答案 【参考方案1】:

你可以在dict理解中有条件

my_dict = x: [0] * 15 for x in string.ascii_uppercase if x not in "YJ"

【讨论】:

【参考方案2】:
my_dict = x: [0] * 15 for x in string.ascii_uppercase if x not in ['J','Y']

【讨论】:

【参考方案3】:

只需使用硬编码的字符串,你可以使用 if 语句但没有任何必要

my_dict = x: [0] * 15 for x in "ABCDEFGHIKLMNOPQRSTUVWXZ"

【讨论】:

真的可以概括;) @Chris_Rands - 它实际上是受到谷歌面试问题的启发,写 fizzbuzz 的最有效方法是什么,答案是硬编码列表;)【参考方案4】:
x: [0] * 15 for x in string.ascii_uppercase if x not in 'JY'

【讨论】:

【参考方案5】:

my_dict = x: [0] * 15 for x in string.ascii_uppercase if x not in ["J", "Y"]

这应该可以完成工作

【讨论】:

为什么要创建一个列表 ["J", "Y"]? @Arkenys 因为带有列表的解决方案可能有效?提供与已回答 in "JY" 的其他人完全相同的解决方案的目的是什么? 该解决方案需要创建一个不如“JY”优化的列表。也不可读(与简单字符串相比)。 如果您认为列表不可读,那么我无法想象您会看到多么复杂的结构。它可能没有优化,因为需要创建列表,但它也表明您可以使用列表来完成相同的工作。在其他情况下,除了使用简单的字符之外,这可能很有用。

以上是关于Python:创建一个从 A 到 Z 的空字典,没有 J 和 Y [重复]的主要内容,如果未能解决你的问题,请参考以下文章

Python 字典常用操作

Python从菜鸟到高手(16):创建和使用字典

python学习随笔

python字典操作

Python字典和值

从列表组合生成 Python 字典