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 [重复]的主要内容,如果未能解决你的问题,请参考以下文章