我有这样一个初始代码:
record = "Jane,Doe,25/02/2002;
James,Poe,19/03/1998;
Max,Soe,16/12/2001
..."
我需要把它编成字典,它的输出应该是这样的:
{'First name': 'Jane', 'Last name': 'Doe', 'Birthday': '25/02/2002'}
{'First name': 'James', 'Last name': 'Poe', 'Birthday': '19/03/1998'}
...
每行应该有一个从1开始的递增键。
我目前还不知道如何处理这个问题,因为我还是一个没有经验的学生。
我见过有人用它来表示包含键值对的字符串,但我的字符串不包含这些:
mydict = dict((k.strip(), v.strip()) for k,v in
(item.split('-') for item in record.split(',')))
8条答案
按热度按时间juzqafwq1#
要为一行生成所需的词典,可以使用
split
切碎有逗号(',')的行,获取字典的值,并硬编码键。例如现在要对记录中的每一行重复这个步骤,需要一个所有行的列表。同样,你可以使用
split
在本例中,切碎有分号(';')的输入。例如现在你可以在这上面迭代一行的解
lines
列表,将结果收集到另一个列表中。您提到的增量键需求似乎很奇怪,因为您可以将它们保存在一个列表中,其中列表中的索引实际上就是键。但当然,如果你真的需要索引字典的东西,你可以使用字典理解来做到这一点。
最后,通过使用列表和字典理解的组合,以及您期望的键的列表,整个事情可能会变得更简洁(而且在我看来更好)。
使用可选的索引字典:
mzmfm0qo2#
使用
split
:bxjv4tth3#
这应该适用于您的情况:
7gyucuyw4#
这个
.split()
方法是有用的。先把线分开;
把每根新弦,
.vmpqdwk35#
其他的答案已经很清楚了,只是想补充一下,你可以在一行中完成(这是可读性差得多,不推荐,但可以说是花哨)。strip()还考虑了可能的空格,如果不需要,可以删除它们。这会给你一个你需要的字典列表
rqmkfv5c6#
我想你在寻找:
印刷品:
c90pui9n7#
输出:
3xiyfsfu8#
下面是一个循序渐进的python方法:
如果所有记录都在一行中,由
;
信号,然后你可以这样做:最后你可以把它们放在一行: