如何仅从词典中打印一项

时间:2019-01-18 14:12:48

标签: python dictionary python-3.7

我最近才刚开始学习Python,通常可以在网上找到我的问题的答案,但似乎无法找到正确的解决方案。 我创建了一个包含3个联系人的字典,我想使用if语句从列表中打印1个联系人。

contacts = {
    "John" : 938477566,
    "Jack" : 938377264,
    "Jill" : 947662781
}

if "John" in contacts: print ("Contact details: %s %i" % contacts.items()[0])

这是我正在寻找的输出:

  

联系方式:约翰938477566

但是我一直得到这个

  

回溯(最近通话最近):     文件“ C:\ Users \ user \ Documents \ asega \ python \ objectsclasses \ exercise3.py”,第31行,在       打印(“联系方式:%s%i”%contact.items()[0])   TypeError:“ dict_items”对象不支持索引

谢谢

5 个答案:

答案 0 :(得分:2)

contacts.items()返回一对键值。就您而言,就像

(("John", 938477566), ("Jack", 938377264), ("Jill", 947662781))

除了在python 3中这像一个生成器而不是一个列表。因此,如果要索引它,则必须执行list(contacts.items()),这将说明您的错误消息。但是,即使您如上所述list(contacts.items())[0],也将获得第一对键值。

您要尝试做的是获取一个密钥的值(如果该密钥存在,并且contacts.get(key, value_if_key_doesnt_exist)为您完成该操作)。

contact = 'John'
# we use 0 for the default value because it's falsy,
# but you'd have to ensure that 0 wouldn't naturally occur in your values
# or any other falsy value, for that matter.
details = contacts.get(contact, 0)
if details:
    print('Contact details: {} {}'.format(contact, details))
else:
    print('Contact not found')

答案 1 :(得分:0)

您可以这样做。如果您确定字典中有“ John”,则不需要if语句。您也可以用其他方式编写它。.

contacts = {
    "John" : 938477566,
    "Jack" : 938377264,
    "Jill" : 947662781
}
print("Contact details: %s %i" % ("John", contacts["John"]))

答案 2 :(得分:-1)

无需检查Caught this error: ValueError('Test Execution completed ... Killing the ChromeDriver instance only',) Only ChromeDriver instance was killed and Chrome Browser instance left open 条件,只需使用if来获取相应的值,如果不存在密钥,则返回get

-1

打印格式

contacts = {
    "John" : 938477566,
    "Jack" : 938377264,
    "Jill" : 947662781
}

contacts.get('John',-1) # -1 will be returned if key is not found

name_to_search='John'
print("Contact details: %s %i" % (name_to_search, contacts.get(name_to_search,-1)))

答案 3 :(得分:-1)

首先,它的字典不是列表,您可以通过建立索引来访问列表中的元素,而在字典中是不可能的, 您可以通过

键访问元素
contacts = {
    "John" : 938477566,
    "Jack" : 938377264,
    "Jill" : 947662781
}

for k,v in contacts.items():
    print(k,v)

或 contacts ['John']您可以访问值

答案 4 :(得分:-2)

字典不支持索引,因此要打印“ John”,您不能索引它,但是以下代码可能会出现这样的字眼:

if "John" in contacts:
   print("Contact details:","John",contacts["John"])

希望有帮助