python if语句关于字典值
Posted
技术标签:
【中文标题】python if语句关于字典值【英文标题】:python if statement on dictionary value 【发布时间】:2012-06-06 10:38:20 【问题描述】:我已经创建了一个字典:
print dict
'a': [['1', ' 2', ' 3']], 'b': [['2', ' 3', ' 4'], ['3', ' 4', ' 2']], 'c': [['1', ' 6', ' 2']]
我不知道如何生成 if 语句 val[0]。
if val[0]dic
print val[0]
感谢您的帮助
【问题讨论】:
请发布所需的输出 你的问题不清楚,请发布输出 嗨,对不起,这不清楚。我正在尝试在我的字典中的第一个值上写一个 if 语句。如果 2 存在,则打印 2。这有帮助吗? @Dustin 字典没有排序,所以没有第一项,考虑使用列表。您可以将输出添加到问题中吗? 建议您尝试创建一些dict
对象和print
它们。您会看到内容的输出顺序与您放入的顺序不同。
【参考方案1】:
您使用了错误的数据类型进行索引。如果您想要排序键,ActiveState 上的this post 显示了一种对无序字典键进行排序的方法。
Ordered dictionaries 的顺序是稳定的,但仍然不是可索引的对象。您需要重新审视您正在尝试做的事情,并更清楚地定义您的问题领域。
【讨论】:
【参考方案2】:如果您尝试按索引访问元素,我认为您不需要字典类型。字典是基于哈希的查找容器,由键索引。在您的示例中:
>>> va['a']
[['1', ' 2', ' 3']]
您可以使用以下方法测试关键存在:
if 'a' in va:
print('a is in va')
http://docs.python.org/library/stdtypes.html#dict
【讨论】:
但是,我在字典中的第一个值之后。这有意义吗? 请在发布之前在 REPL 中测试您的样本。您的 if 语句缺少必需的尾随冒号。 这是一次尝试:if 2 in dic.items(0) print 2 @Dustin:不,这没有意义。字典是无序的。 OrderedDict 救援:docs.python.org/library/collections.html#ordereddict-objects以上是关于python if语句关于字典值的主要内容,如果未能解决你的问题,请参考以下文章