有命名值的字典?

2024-05-17 02:55:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这样一个文件:

A X V1
A Y V2
B X V3
B Y V4

假设第一列是模型类型,第二列是版本号,第三列是相关内容的值。你知道吗

我想回答一个问题:“型号A,版本X的价值是什么?” 对于所有值和所有版本。你知道吗

我想使用dict,但我只知道dict每个键有一个值。这把需要两把钥匙

d[model][version] = value 

你会怎么做?你知道吗


Tags: 文件模型版本类型内容model版本号v3
2条回答
with open("Input.txt") as inputFile:
    lines = [line.strip().split() for line in inputFile]
result = {}
for k1, k2, v in lines:
    result.setdefault(k1, {})[k2] = v
print result

输出

{'A': {'Y': 'V2', 'X': 'V1'}, 'B': {'Y': 'V4', 'X': 'V3'}}

您可以像这样访问各个元素

print result["A"]["Y"]

输出

V2

您可以嵌套词典:

d['A'] = {}
d['A']['X'] = 'V1'

或者可以改用元组键:

d[('A', 'X')] = 'V1'

嵌套可以更容易地列出给定模型的所有已知版本:

versions_for_model = d['A'].keys()

使用^{}可以稍微简化创建嵌套字典的设置:

d = defaultdict(dict)
d['A']['X'] = 'V1'

这里尝试访问d['A']会自动创建一个新的字典值。你知道吗

相关问题 更多 >