如何在Python中打印字典的键?

时间:2015-02-04 01:08:14

标签: python python-3.x

假设我有一本字典:

dictionary1 = {'test':'output','test2':'output2'}

如何在屏幕上打印密钥test

我一次只想一个所有这些。

顺便说一句,不是字面意思,通过做print('test'),我的意思是你如何打印任何字典的键?

就像有这样的东西:

#pseudocode
x = dictionary1.keys()[0]
>>> print(x)
'test'

我不想对我实际在我的程序中使用的词典进行排序。

2 个答案:

答案 0 :(得分:0)

字典可以包含任意数量的键,0 +。要按排序顺序打印所有(如果有的话),你可以

for key in sorted(dictionary1):
    print(key)

如果您不关心订单(即使用随意的订单,您可以处于罚款状态),请移除sorted来电。

如果您想要有选择性(例如,只打印长度为4的序列的键,那么在您的示例test中将会打印,但test2将不会:

for key in sorted(dictionary1):
    try:
        if len(key) == 4:
            print(key)
    except TypeError:
        pass

如果您只想打印一个这样的密钥,请在break之后添加print

你的极其模糊的问题至少还有347个其他的东西,但我试图找出那些看起来最有可能的东西......如果这对你来说还不够,那就编辑你的问题吧很多更精确! - )

补充说:编辑只说OP想要只打印一个键并且不进行排序,所以选择一个键仍然是一个谜如何(我怀疑那里' sa误解 - 好像dict键有一个特定的顺序,当然在Python中它们不是,而OP想要"第一个",它只是不能被固定下来 - OrderedDict是一个非常不同的[并且唉不可避免地更慢]野兽,但是dict是OP显示的内容。

因此,如果目标是打印"任何一个键,无论哪一个" (并且已知thedict不为空):

print(next(iter(thedict)))

是最简单,最直接的方式 - dict是可迭代的,以任意顺序产生其键; iter在其iterable参数上返回一个迭代器;并且next返回其迭代器参数的第一个(第一个以任意顺序表示当然是任意一个)项。

如果thedict可能为空,并且在这种情况下不能打印任何内容,只需添加一名警卫:

if thedict: print(next(iter(thedict)))

这不会为空字典打印任何内容,空字典是长度为1的字典的唯一键,是长度大于1的字典的任意键。

答案 1 :(得分:0)

如果您要查找与特定值相关联的密钥,则可以执行

keys = [key for key in d if d[key] == value]
print(keys)