【发布时间】:2017-02-12 06:21:18
【问题描述】:
假设我有一个列表l=[3,4,4,2,1,4,6]
我想获得这个列表的一个子集,其中包含值为 max(l) 的元素的索引。
在这种情况下,索引列表将为[1,2,5]。
我正在使用这种方法来解决一个问题,例如,提供了一个数字列表
l=[1,2,3,4,3,2,2,3,4,5,6,7,5,4,3,2,2,3,4,3,4,5,6,7]
我需要确定一个元素的最大出现次数,但是如果超过 1 个元素出现相同的次数,
我需要选择量级更大的元素,
假设我在 l 上应用一个计数器并得到{1:5,2:5,3:4...},我必须选择“2”而不是“1”。
请建议如何解决这个问题
编辑- 问题是这样开始的, 1) 提供一个列表作为输入
l=[1 4 4 4 5 3]
2)我对此运行一个计数器来获取每个唯一元素的计数
3)我需要获取值为最大值的key
4)假设Counter对象包含多个值为最大值的条目,
如Counter{1:4,2:4,3:4,5:1}
我必须选择 3 作为值为 4 的键。
5) 到目前为止,我已经能够获取 Counter 对象,我已经使用 k=counter.keys();v=counter.values() 分离了键/值列表
6)我想获取在 v 中值为最大值的索引 如果我运行v.index(max(v)),我得到第一个值与最大值匹配的索引,但我想获取值为max的索引列表,以便我可以获得对应的键列表并获得最大值键入该列表。
【问题讨论】:
-
您的问题不清楚,请更清楚地说明您的输入和期望的输出。
-
你能解释一下你是如何在 4 中从
l变成Counter字典的吗? -
@Giridhur 我从集合中导入 Counter,并将列表作为参数发送给 Counter。这将返回一个 Counter 对象。与 4 一样,我刚刚使用了一个示例,它可能与 1 中指定的列表无关
标签: python-3.x