【问题标题】:How to iterate over list of key-value tuples?如何迭代键值元组列表?
【发布时间】:2020-02-04 14:14:39
【问题描述】:

我已经使用 sorted() 方法对字典进行了排序,它返回一个键值元组列表:-

MyDict = {'a': 8, 'b': 4, 'c': 3, 'd': 1, 'e': 0, 'f': 0, 'g': 1, 'h' :1}
data = sorted(MyDict.items(), key=lambda x: x[1], reverse=True)
print(data)

输出:-

[('a', 8), ('b', 4), ('c', 3), ('d', 1), ('g', 1), ('h', 1), ('e', 0), ('f', 0)]

现在,我想使用 for 循环对其进行迭代并打印键以及可被 k 整除的值(k 可以是任何整数)。这似乎是一个基本问题,但我是初学者,对我来说似乎很棘手。帮助将不胜感激。

【问题讨论】:

  • 您到底遇到了什么问题?循环?分工?
  • 循环部分@deceze.
  • 是否需要将字典转换为元组列表?
  • 到底是什么问题?你有没有尝试过,做过任何研究?此外,变量和函数名称应遵循lower_case_with_underscores 样式。

标签: python dictionary iterator tuples


【解决方案1】:
k = 4
data = [('a', 8), ('b', 4), ('c', 3), ('d', 1), ('g', 1), ('h', 1), ('e', 0), ('f', 0)]

for item in data:
    if item[1] % k == 0:
        print('Key = %s, Value = %.i' % (item[0], item[1]))

输出:

Key = a, Value = 8
Key = b, Value = 4
Key = e, Value = 0
Key = f, Value = 0

【讨论】:

    【解决方案2】:

    尝试以下方法:

    num = 1
    
    for key, value in data:
        if value % num == 0:
            print("Key: {0} Value: {1}".format(key, value))
    

    【讨论】:

      【解决方案3】:

      您无需将字典转换为元组列表即可。 试试这个:

      MyDict = {'a': 8, 'b': 4, 'c': 3, 'd': 1, 'e': 0, 'f': 0, 'g': 1, 'h' :1}
      
      k = 2   # it can be any value as you say
      
      for key,val in MyDict.iteritems():
          if val%k ==0:
              print("Key - {0} and value - {1}".format(key,val))
      
      

      如果您仍然需要将给定的字典转换为元组列表然后使用它,那么您可以这样做。

      MyDict = {'a': 8, 'b': 4, 'c': 3, 'd': 1, 'e': 0, 'f': 0, 'g': 1, 'h' :1}
      data = sorted(MyDict.items(), key=lambda x: x[1], reverse=True)
      
      k = 2  # any int value you want.
      
      for item in data:
          if item[1]%k == 0:
              print("Key - {0} and value - {1}".format(item[0],item[1]))
      

      【讨论】:

        猜你喜欢
        • 2013-01-30
        • 2015-01-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-04-01
        • 2019-03-17
        • 1970-01-01
        相关资源
        最近更新 更多