gpt4 book ai didi

python - 在 python 中将集合写入输出文件

转载 作者:行者123 更新时间:2023-12-01 02:36:40 25 4
gpt4 key购买 nike

我通常将 json 用于列表,但它不适用于集合。是否有类似的函数可以将集合写入输出文件 f?像这样的东西,但是对于集合:

f=open('kos.txt','w')
json.dump(list, f)
f.close()

最佳答案

json 不是 python 特定的格式。它知道列表和字典,但不知道集合或元组。

但是如果你想保留一个纯Python数据集,你可以使用字符串转换。

with open('kos.txt','w') as f:
f.write(str({1,3,(3,5)})) # set of numbers & a tuple

然后使用ast.literal_eval再次读回它

import ast
with open('kos.txt','r') as f:
my_set = ast.literal_eval(f.read())

这也适用于集合列表、内部有集合的嵌套列表...只要数据可以按字面意思求值并且没有集合为空(literal_eval 的 known limitation )。因此,基本上使用 str 序列化(几乎)任何 Python 基本对象结构都可以用它来解析。

对于空集情况,由于 set() 无法解析回来,因此需要应用一个拼凑。

import ast
with open('kos.txt','r') as f:
ser = f.read()
my_set = set() if ser == str(set()) else ast.literal_eval(ser)

您也可以使用 pickle 模块,但它会创建二进制数据,因此更加“不透明”,并且还有一种使用 json 的方法:How to JSON serialize sets? 。但为了满足您的需求,我会坚持使用 str/ast.literal_eval

关于python - 在 python 中将集合写入输出文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46144452/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com