【问题标题】:Converting an array to hash in python在python中将数组转换为哈希
【发布时间】:2015-06-13 02:01:24
【问题描述】:

试图将列表转换为字典,但无法获得预期的输出

p = {}
a = ["s","l","y"]
for s in a:
    p["size"] = s

print(p)

输出:

{'size': 'y'}

但我期待这样的输出

{'size': 's','size': 'l','size': 'y'}

我如何在 python 中实现这一点

【问题讨论】:

  • 不行,dict 键应该是唯一的
  • 是的,这不会像 itzmeontv 所说的那样起作用。你想用这些数据做什么?
  • 假设你有你想要创建的字典p,你做了p['size']。你想发生什么?
  • 如果我的回答回答了你的问题。请考虑接受它。谢谢!

标签: python arrays hash converter


【解决方案1】:

您无法实现目标,因为您使用的是字典,而且字典中的每个键都是唯一的。也许您想改用列表:

p = []
a = ['s', 'l', 'y']
for s in a:
    p.append(('size',  s))

print(p)

输出:

[('size', 's'), ('size', 'l'), ('size', 'y')]

【讨论】:

  • 有了这个答案,我们将一个列表转换为一个嵌套元组的列表,它与请求的字典不匹配。
【解决方案2】:

字典中不能有多个相同的键,因此您可以使用字典列表。一个简单的列表推导应该可以解决问题。

p = [{'size': a_size} for a_size in a]

结果:

[{'size': 's'}, {'size': 'l'}, {'size': 'y'}]

【讨论】:

  • 你们应该等待一秒钟,然后再否决任何事情。让这家伙编辑一些东西。
【解决方案3】:

下面的代码应该是一个干净的解决方案。

p = {}
a = ["s", "l","y"]
for s in a:
    if s == "s":
        p["small-size"] = s
    elif s == "l":
        p["large-size"] = s
    else:
        p["youth-size"] = s

print(p)

输出如下:

{'small-size': 's', 'large-size': 'l', 'youth-size': 'y'}

【讨论】:

    猜你喜欢
    • 2019-10-27
    • 2019-05-23
    • 2012-10-29
    • 2010-12-11
    • 1970-01-01
    • 2020-01-26
    • 1970-01-01
    • 2018-03-20
    相关资源
    最近更新 更多