【问题标题】:Effective placeholder in python dictionarypython字典中的有效占位符
【发布时间】:2021-09-20 12:28:00
【问题描述】:

我有一个包含整数键和字符串值的字典。键数最多为 N,但包括间隙。是否有一种有效的方法可以将所有空白填补到一个特定的数字? (编号从 1 开始,而不是 0)

例子:

{1: "fdkh", 3: "wnww", 4: "fdngfne", 5: "wqiw", 7: "sdfsdf"}
 N = 9

结果应该是:

{1: "fdkh", 3: "wnww", 4: "fdngfne", 5: "wqiw", 7: "sdfsdf", 2: "placeholder", 6: "placeholder", 8: "placeholder", 9: "placeholder"}

当然我可以手动循环,但有更聪明的方法吗?

【问题讨论】:

  • 循环将是一种方式。您还可以使用defaultdict 在请求时而不是事先填充这些空值。另外,请考虑改用list。包含连续数字键的字典基本上是一个更复杂的列表;除非您需要某些字典操作,例如删除。
  • 我从未见过默认值,这实际上是个好主意。谢谢!这比循环好一点。

标签: python dictionary placeholder


【解决方案1】:

一种快速的方法(诚然涉及一些循环)是

mydict = dict.fromkeys(range(1,N+1),"placeholder") | {
    1: "fdkh", 3: "wnww", 4: "fdngfne", 5: "wqiw", 7: "sdfsdf"}

虽然我怀疑你可能正在联系collections.defaultdict:

mydict = defaultdict(lambda: "placeholder",{
    1: "fdkh", 3: "wnww", 4: "fdngfne", 5: "wqiw", 7: "sdfsdf"})

【讨论】:

    猜你喜欢
    • 2021-08-24
    • 2017-12-11
    • 1970-01-01
    • 1970-01-01
    • 2016-01-07
    • 2017-01-13
    相关资源
    最近更新 更多