Python:将字典转换为列表的列表

10
基本上,我有一个字典,我想将其转换为列表的列表(每个组件列表由字典中的键和值组成)。
我这样做的原因是为了能够使用for循环迭代这个新列表,并对键和值都进行一些操作。如果有更简单的方法,我也愿意听取建议。

1
你能提供一个dict的例子吗? - John Giotta
4个回答

30

这个解决方案怎么样?无需通过不必要的循环来弄脏你的手,更干净、更短!!!

d = { 'a': 1, 'b': 2, 'c': 3 }
list(map(list, d.items()))
[['a', 1], ['c', 3], ['b', 2]]

14
for key, value in my_dict.iteritems()

这将遍历字典,将每个键存储在key中,将每个值存储在value中。请参阅文档


在Python 3中,请使用for key, value in iter(my_dict.items()) - Sam Finnigan

3

遍历字典的键和值:

for key, value in D.iteritems():
    # do something with them

0

我不确定这是否是您要求的,但这是我如何将字典转换为列表并使用其键作为元组值。

new_list = []
dict = {test:1, test:2, test:3}
for key, value in dict.iteritems():
    new_list.append((key, value))

这里是我正在做与你想要的非常相似的事情。

 if str(vm_mor) == vm['config.annotation']:
    annotation= pickle.load(open(str(vm_mor), "rb"))
    print annotation

    sql_check_exist = '''select a.vm_mor, b.license_id, c.product from vms a , vm_licenses b, licenses c where a.vm_id = b.vm_id and b.license_id = c.license_id and a.vm_mor = '%s' ''' % str(vm_mor) 
    cursor_exist.execute(sql_check_exist)
    database_license = []

    for vm_mor, license_id, product in cursor_exist:
       database_license.append((product,license_id))

    checklist_database_license = [int(i[1]) for i in database_license] #make a list of 2nd element of all the tuples in the database_license list
    check_me = annotation['license']

    for product, license_id in check_me:
       if license_id in checklist_database_license:
          print "do nothing"
       else:
          del annotation['license']
          annotation['license'] = database_license
          change = True

    if change == True:         
       change_annotation(vm_mor, annotation)
       change = False    

 else:
    print vm['config.name']
    pickle_mor(vm_mor,vm) 

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接