【问题标题】:how to construct a dictionary from join? [duplicate]如何从连接构造字典? [复制]
【发布时间】:2023-04-10 05:51:01
【问题描述】:

我正在尝试为以下元组列表构建字典:

lst=[('ldb', 25), ('baseB', 4), ('code', 112), 
     ('cache-6', 55), ('Xauthority', 1), ('baseA', 4), 
     ('npmrc', 1), ('apmrc', 1),('gz', 190), 
     ('dbf', 1), ('lst', 2), ('markdown', 10), 
     ('sqlite-shm', 2), ('vsixmanifest', 4), ('ttf', 109), 
     ('pkl', 35), ('gitignore', 8), ('xml', 46)]

通过像这样使用连接:

op= {','.join( '\'%s\':%d'%i for i in lst)}

但输出op 将是set 类型,如下所示!!

set(["'ldb':25,'baseB':4,'code':112,'cache-6':55, 'Xauthority':1,'baseA':4,'npmrc':1,'apmrc':1,
'gz':190,'dbf':1,'lst':2,'markdown':10,'sqlite-shm':2,'vsixmanifest':4,'ttf':109,'pkl':35,'gitignore':8,'xml':46"])

有人纠正我得到dictionary 而不是set 提前致谢。

【问题讨论】:

  • 只需执行 d = dict(lst) 即可。

标签: python python-2.7 dictionary


【解决方案1】:

目前,您正在创建一个集合,而不是字典。试试这个:

lst=[('ldb', 25), ('baseB', 4), ('code', 112), ('cache-6', 55), ('Xauthority', 1), ('baseA', 4), ('npmrc', 1), ('apmrc', 1), ('gz', 190), ('dbf', 1), ('lst', 2), ('markdown', 10), ('sqlite-shm', 2), ('vsixmanifest', 4), ('ttf', 109), ('pkl', 35), ('gitignore', 8), ('xml', 46)]

new_data = {a:b for a, b in lst}

或者,更好的是:

new_data = dict(lst)

【讨论】:

    【解决方案2】:

    试试看:

    lst = [('ldb', 25), ('baseB', 4), ('code', 112), ('cache-6', 55), ('Xauthority', 1), ('baseA', 4), ('npmrc', 1),
       ('apmrc', 1), ('gz', 190), ('dbf', 1), ('lst', 2), ('markdown', 10), ('sqlite-shm', 2), ('vsixmanifest', 4),
       ('ttf', 109), ('pkl', 35), ('gitignore', 8), ('xml', 46)]
    
    d = dict()
    for i in lst:
        d[i[0]] = i[1]
    print(d)
    

    【讨论】:

      猜你喜欢
      • 2013-12-20
      • 1970-01-01
      • 1970-01-01
      • 2011-11-24
      • 1970-01-01
      • 1970-01-01
      • 2013-08-20
      • 2015-08-08
      • 1970-01-01
      相关资源
      最近更新 更多