首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Python中,我试图将一个文本文件导入到字典中,但只分配了键,没有赋值

在Python中,我试图将一个文本文件导入到字典中,但只分配了键,没有赋值
EN

Stack Overflow用户
提问于 2015-02-23 09:05:57
回答 3查看 74关注 0票数 0

有没有一种方法可以导入文本文件并分配不带值的键?我这样做是为了从另一个文本文件导入其他值,以便将它们指定为键的值。

例如,我会从一个文本文件中获取一个名称并将其指定为关键字,然后从另一个文本文件中获取他们的银行帐号、金额、id号并将这些值分配给关键字。

我知道如何从单个文本文件中导入带有键和值的文本文件,但我不知道如何分别执行该操作并将其分配给一个键值对。

谢谢。

EN

回答 3

Stack Overflow用户

发布于 2015-02-23 09:10:10

每个dict对每个键都有一个值--对于一个或多个键,没有“没有值”这回事。但是,您可以将值设置为占位符,例如None,然后在您确切知道每个给定键的值之后,只需重新分配它即可。

票数 1
EN

Stack Overflow用户

发布于 2015-02-23 09:14:40

在判断书中,不能不赋值就赋值,反之亦然。但您可以将值覆盖到给定键,因此:

代码语言:javascript
运行
复制
d["name"] = None
[...]
d["name"] = data

都会起作用的。

另一方面,如果您不想这样做,您可以只将键(或数据)保存在临时变量中:

代码语言:javascript
运行
复制
temp_dict_entry = [None, None]
temp_dict_entry[0] = "name"
[...]
temp_dict_entry[1] = data
[...]
d[temp_dict_entry[0]] = temp_dict_entry[1]

我在这里写的方式并不好,但可能会根据上下文(可能)而有所帮助。例如,如果您在知道密钥之前就知道了数据,那么这将是可行的,而这在第一个解决方案中是行不通的。

票数 0
EN

Stack Overflow用户

发布于 2015-02-23 09:15:12

您可以只在第一次读入准关键字时创建一个占位符值。例如,如果您想要的值是一个由银行帐号、金额和id号组成的三元组,那么您可以将一个“未填充”的值表示为(None, None, None)

在代码中,这意味着当您第一次尝试将密钥放入dict时,只需将(None, None, None)作为值:

代码语言:javascript
运行
复制
some_dict = {}
with open('some_file.txt', 'r') as the_file:
    for line in the_file.readlines():
        key_name = compute_key_name(line)
        some_dict[key_name] = (None, None, None) # place holder 

然后,当您稍后读取实际值时,您可以这样做

代码语言:javascript
运行
复制
with open('some_other_file.txt', 'r') as the_other_file:
    for line in the_other_file.readlines():
        key_name, bank_acct, money, id_num = compute_info(line)
        some_dict[key_name] = (bank_acct, money, id_num)

在这里,我使用了一些组合函数compute_key_namecompute_info来表示在准备将数据写入dict之前循环中可能出现的任意文件处理逻辑。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28665515

复制
相关文章

相似问题

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