【问题标题】:Iterating over keys in dictionary, which are tuples遍历字典中的键,它们是元组
【发布时间】:2018-03-06 20:37:37
【问题描述】:

假设我有一个字典,其键是元组。是否可以遍历字典的键并仅返回在其元组的第一个位置具有特定值的键?例如:

my_dict = {('a','a'):'b', ('a','b'):'b', ('b','a'):'a'}
def function(given):
    for (given,x) in my_dict:
        print((given,x))

function('a')

我希望函数打印以下内容:

>> ('a','a')
>> ('a','b')

有没有办法在 Python 中做到这一点?

【问题讨论】:

  • 那么,您到底遇到了什么问题?
  • 我已经给出了一个值。我想打印字典中所有以给定值作为第一个元素的元组
  • ...是的。您似乎了解如何遍历键,那么究竟是什么问题?

标签: python python-3.x dictionary tuples


【解决方案1】:

您需要在打印前检查第一个值是否是带有if 语句的given 键。另外,你不应该使用given 作为你的循环变量,否则你会掩盖你的函数参数。

def function(given):
    for k in my_dict:
        if given == k[0]:
            print(k)

【讨论】:

  • 我已经想出了这个解决方案,我只是想可能有更简单的方法来做到这一点......
  • 使用mapfilter 或列表理解的方式有些复杂,但这是最直接和首选的方式。为什么要避免使用if 声明?
【解决方案2】:
def function(given):
    for (key,value) in my_dict:
        if(key==given):
            print((key,value))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-15
    • 1970-01-01
    • 2016-10-21
    • 2015-07-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多