首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python -以特定的方式从字典中提取信息

Python -以特定的方式从字典中提取信息
EN

Stack Overflow用户
提问于 2015-10-15 09:43:57
回答 3查看 40关注 0票数 1

我试图从字典中提取某些值,并以特定的方式显示它。下面我将向您展示我的代码示例:

代码语言:javascript
复制
dict = [{'Titel': 'Rush', 'Name': 'Floris', 'Starttime': '20:30', 'Email': 'Floris@email.com', 'Supplier': 'RTL8', 'Surname': 'Cake', 'Code': 'ABC123'},
 {'Titel': 'Rush', 'Voornaam': 'Jaron', 'Starttime': '20:30', 'Email': 'JaronPie@email.com', 'Supplier': 'RTL8', 'Surname': 'Pie', 'Code': 'XYZ123'},
 {'Titel': 'Underneath', 'Name': 'Klaas', 'Starttime': '04:00', 'Email': 'Klassieboy@gmail.com', 'Supplier': 'RTL8', 'Surname': 'Klassie', 'Code': 'fbhwuq8674'}]

那是我的字典。作为输出,我需要的是:

代码语言:javascript
复制
Titel, Starttime,
Surname, Name, Email

所以看起来是这样:

代码语言:javascript
复制
Rush, 20:30, 
Cake, Floris, Floris@email.com
Pie, Jaron, JaronPie@email.com

Underneath, 04:00,
Klassie, Klaas, Klassieboy@gmail.com
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-10-15 10:06:07

我使用VKS的代码来构建它,谢谢VKS :P

使用成群列表理解sting格式

代码:

代码语言:javascript
复制
from itertools import groupby
k = [{'Titel': 'Rush', 'Name': 'Floris', 'Starttime': '20:30', 'Email':      'Floris@email.com', 'Supplier': 'RTL8', 'Surname': 'Cake', 'Code': 'ABC123'},
{'Titel': 'Rush', 'Voornaam': 'Jaron', 'Starttime': '20:30', 'Email': 'JaronPie@email.com', 'Supplier': 'RTL8', 'Surname': 'Pie', 'Code': 'XYZ123'},
{'Titel': 'Underneath', 'Name': 'Klaas', 'Starttime': '04:00', 'Email': 'Klassieboy@gmail.com', 'Supplier': 'RTL8', 'Surname': 'Klassie', 'Code': 'fbhwuq8674'}]

lst=[(i["Titel"],i["Starttime"],i["Surname"],i.get("Name","None"), i["Email"]) for i in k]
lst.sort(key=lambda x:(x[0],x[1]))
for key,groups in groupby(lst,key=lambda x:(x[0],x[1])):
    print "{}\t{}".format(key[0],key[1])
    for value in groups:
        print "{}\t{}\t{}".format(value[2],value[3],value[4])
    print ""

输出:

代码语言:javascript
复制
Rush    20:30
Cake    Floris  Floris@email.com
Pie     None    JaronPie@email.com

Underneath      04:00
Klassie Klaas   Klassieboy@gmail.com
票数 3
EN

Stack Overflow用户

发布于 2015-10-15 09:50:04

代码语言:javascript
复制
k = [{'Titel': 'Rush', 'Name': 'Floris', 'Starttime': '20:30', 'Email':      'Floris@email.com', 'Supplier': 'RTL8', 'Surname': 'Cake', 'Code': 'ABC123'},
 {'Titel': 'Rush', 'Voornaam': 'Jaron', 'Starttime': '20:30', 'Email': 'JaronPie@email.com', 'Supplier': 'RTL8', 'Surname': 'Pie', 'Code': 'XYZ123'},
 {'Titel': 'Underneath', 'Name': 'Klaas', 'Starttime': '04:00', 'Email': 'Klassieboy@gmail.com', 'Supplier': 'RTL8', 'Surname': 'Klassie', 'Code': 'fbhwuq8674'}]

print [(i["Titel"],i["Starttime"],i["Surname"], i["Email"]) for i in k]

你可以使用这个,你会得到你想要的所有信息的tuple

票数 1
EN

Stack Overflow用户

发布于 2015-10-15 09:58:56

代码语言:javascript
复制
def print_my_d(d):

     print(d[0]['Titel'], d[0]['Starttime'])
     for l in d[:2]:
         print(l['Surname'], l['Name'], l['Email'])
     print()
     print(d[2]['Titel'],d[2]['Starttime'])
     print("{}, {}, {}".format(d[2]['Surname'],d[2]['Name'], d[2]['Email']))


print_my_d(d)

Rush 20:30
Cake Floris Floris@email.com
Pie Jaron JaronPie@email.com

Underneath 04:00
Klassie, Klaas, Klassieboy@gmail.com
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33145132

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档