【问题标题】:check the existence of a number or greater without using for loop在不使用 for 循环的情况下检查数字或更大数字的存在
【发布时间】:2017-02-21 17:24:21
【问题描述】:

我有一本像这样的字典:

chars_dict = {'a' : 1, 'c': 2, 'e': 4, 'h': 3, 's': 1}

这个字典将包含字符及其计数,最小值为 1,最大值取决于字符串中的字符。

现在,我想在不使用 for 循环的情况下检查计数 2 或更大 是否存在。为了实现这一点,我颠倒了上面的字典。现在字典变成了,

 rev_chars_dict = {1: ['a', 's'], 2: 'c', 4: 'e', 3: 'h'}

但是,如何在不使用for 循环的情况下检查键的存在(此处为数字 2 或更大)?有没有pythonic的方法?

我想要类似的东西,

if >=2 in rev_chars_dict:
    return True
else:
    return False

【问题讨论】:

  • 那么理解不能算作for循环?
  • 你的值不是唯一的,所以当你用你的键交换它们时,你将关闭一些条目(因为dict键是唯一的)
  • 抱歉,在这种情况下,假设我在反转后将字符列表作为值。

标签: python python-3.x dictionary for-loop max


【解决方案1】:

为什么不使用 for 循环?这是作业题吗?

max(d.values()) >= 2

d 是字典。

【讨论】:

  • 这太棒了!所以,我想我什至不必把字典倒过来。
【解决方案2】:

找出超过 1 的键:

[key for key, value in chars_dict.items() if value >1]

一个简单的测试:

len([key for key, value in chars_dict.items() if value >1])>0

【讨论】:

  • 谢谢!但是,列表理解类型仍然使用for 循环
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-05
  • 2018-03-21
  • 2021-11-06
  • 2020-02-26
  • 2023-02-05
相关资源
最近更新 更多