python

时间:2017-06-13 14:06:31

标签: python python-2.7

在我的要求中,列表是动态创建的,每次都有不同列的词典集合。因此,每次我需要打印的内容都会因某些逻辑而有所不同。

如果我为每个案例创建 if ..else 语句,我可以打印出我想要的内容。

这里我的案例太多了所以我不想写那么多 if ... esle 语句来打印。

而不是我想要从配置文件中读取我需要打印的内容并打印实际值。

实施例: list1 = [{'name':'xyz','age':22,'place':'huj'},{'name':'hjhd','age':44,'place':'wer'} ]

想要打印姓名和年龄栏

the following code will do my work.
if id == 1:
    for i in list1:
        i['name']+","+i['age']
elif id == 2:
    for i in list1:
        i['account']+","+i['spend']
elif id == 3:
    for i in list1:
        i['percentage']+","+i['rank']

我只想写一个if if语句。由于我有100多个案例。

我可以通过使用ConfigParser或其他任何东西来处理这个问题,而不是编写这些if else语句。

3 个答案:

答案 0 :(得分:5)

您可以使用

等打印格式
for entry in list1:
    print("{name}, {age}  ({place})".format(**entry))

答案 1 :(得分:2)

这个怎么样:

x = ["name", "age"]
for i in list1:
    for k in x:
        print list1[i][k]

答案 2 :(得分:0)

我也很困惑这个问题,但这是另一个选择

list1=[{'name': 'xyz', 'age' : 22, 'place' : 'huj'}, {'name' : 'hjhd", 'age' : 44, 'place' : 'wer'}]

key1 = "name"
key2 = "age"
key3 = "place"

x = [li[key1] + li[key2] + li[key3] for li in list1]
print x