Python对列表进行迭代

Python对列表进行迭代,python,python-3.x,Python,Python 3.x,想弄明白这件事, 我有3本字典,我正在将它们添加到一个列表中,但如何循环列表并打印出该列表呢 def_person = {'name' : 'TEST1','JobRole' : 'TESTJOB'} def_person1 = {'name' : 'TEST2','JobRole' : 'TESTJOB1'} def_person2 = {'name' : 'TEST3','JobRole' : 'TESTJOB2'} person = list(def_person.keys()) per

想弄明白这件事, 我有3本字典,我正在将它们添加到一个列表中,但如何循环列表并打印出该列表呢

def_person = {'name' : 'TEST1','JobRole' : 'TESTJOB'}
def_person1 = {'name' : 'TEST2','JobRole' : 'TESTJOB1'}
def_person2 = {'name' : 'TEST3','JobRole' : 'TESTJOB2'}

person = list(def_person.keys())
person.append(def_person.values())
person.append(def_person1.values())
person.append(def_person2.values())

for persons in person:
    print()
所以我的输出是这样的
使用Name下的所有名称命名jobrole,jobrole下的所有名称命名jobrole。

实际上,您不能假设所有具有相同键的词典都会以相同的顺序显示键,这是无法保证的。相反,您应该有一个按顺序打印的键列表,然后在每个字典的键列表上迭代,为每个键提取值

我首先演示如何正确创建二维列表:

person_keys = list(def_person.keys())

# add the heading row
result = [person_keys]

for person in [def_person, def_person1, def_person2]:
    # make a list of current person's values in the
    # order of keys in person_keys
    result.append([person[key] for key in person_keys])
现在,要很好地打印此列表,在Python 3中,您可以执行以下操作:

for row in result:
    for cell in row:
        # print each cell as at least 20 characters wide
        print('{:20}'.format(cell), end='')

    # empty line after each row
    print() 
结果:

JobRole             name                
TESTJOB             TEST1               
TESTJOB1            TEST2               
TESTJOB2            TEST3               


在上面,列的顺序是任意的。有时你会先得到
JobRole
,有时会先得到
name
。如果您想先使用
名称
进行固定订单,那么只需使用
个人密钥=['name','JobRole']

可能重复的@padraiccningham也不是这样。