【问题标题】:Looking for a list of values in a dict and retuning its key [duplicate]在字典中查找值列表并重新调整其键 [重复]
【发布时间】:2023-03-13 16:52:02
【问题描述】:

我有这个字典:

d = { 'car'  : ["ford", "fiat", "vw"],
      'bike' : ["fant","xorg","niky"]}

我从用户那里得到 3 个字符串输入:

a=str(input())
b=str(input())
c=str(input())

如果输入是:

ford
fiat
vw

我应该得到"car" 作为输出

我正在尝试这样的事情:

for a,b,c in d.values():
    print(d.keys())

但它当然不起作用,因为无论输入是什么,它都会打印所有 d.keys。 谁能帮帮我?

【问题讨论】:

  • 旁注:str(input()) 是多余的。 input() 已经返回 str

标签: python python-3.x dictionary


【解决方案1】:

尝试列表理解:

print(next((k for k, v in d.items() if v == [a, b, c])))

示例输出:

ford
fiat
vw
car

注意:inputs 总是字符串,所以 str(...) 不是必需的,你可以直接使用

a = input()
b = input()
c = input()

【讨论】:

  • 谢谢伙计。只有一个问题:如何将输出从 ´ ['car'] 更改为 car(没有 [ 和 ')?
【解决方案2】:
d = { 'car'  : ["ford", "fiat", "vw"],
      'bike' : ["fant","xorg","niky"]}
a=str(input())
for k, v in d.items():
    if a in v:
        print(k)
        break

【讨论】:

  • 某某谢谢。您的答案很可能是,有时我们可以将三个值中的一个值超过 1 个键。我需要恰好 3 个值来匹配 @U12-Forward 所做的键。非常感谢您的帮助 xD
猜你喜欢
  • 2021-09-01
  • 2022-01-22
  • 2020-11-26
  • 2011-11-02
  • 2019-01-15
  • 2018-10-15
  • 1970-01-01
  • 2013-07-06
  • 2019-11-13
相关资源
最近更新 更多