繁体   English   中英

将元组转换为 dict 并选择 dict 键名

[英]Convert tuple into dict and choose dict key names

我有以下元组: (1234234, 23, 0)

我想把它变成以下形式的字典:

{
  app: 1234234,
  sdk: 23,
  done: 0,
}

怎样才能做到这一点?

更新:这个问题与这个问题不同,因为它并不意味着它只能通过使用两个元组来解决。

类似下面的东西

values = (1234234, 23, 0)
keys = ['app', 'sdk', 'done']
d = {k: values[idx] for idx, k in enumerate(keys)}
print(d)

output

{'app': 1234234, 'sdk': 23, 'done': 0}

@balderman 的另一种方法:

values = (1234234, 23, 0)
keys = ['app', 'sdk', 'done']
d = dict(zip(keys, values))
t = (1234234, 23, 0)
keys = ["app", "sdk", "done"]
d = {}

for num in t:
    key = keys[t.index(num)]
    d[key] = num

此代码将遍历元组中的数字并将键分配给字典中的数字。

a)如果您想手动选择键(用户通过 shell 输入),您可以执行以下操作:

values = (1234234, 23, 0)
yourdict = {input(f"insert key fot value {value}: "): value for value in values}

output:

>>> insert a key for value 1234234: value1
>>> insert a key for value 23: value2
>>> insert a key for value 0: value3

{"value1": 1234234, "value2": 23, "value3": 0}

b)如果您想从键列表中自动执行此操作:

values = (1234234, 23, 0)
keys = ["key1", "key2", "key3"]
yourdict = {keys[count]: value for count, value in enumerate(values)}

output:

{"key1": 1234234, "key2": 23, "key3": 0}

c)如果您想以数字方式分配它们:

values = (1234234, 23, 0)
yourdict = {count: value for count, value in enumerate(values)}

output:

{0: 1234234, 1: 23, 2: 0}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM