是否可以使用python获取哪些值在列表中重复?
我有一个项目清单:
mylist = [20, 30, 25, 20]
我知道删除重复项的最佳方法是set(mylist)
,但是是否可以知道正在重复哪些值?如您所见,在此列表中,重复项是第一个和最后一个值。[0, 3]
。
是否有可能获得此结果或python中类似的东西?我正在努力避免做出荒谬的大if elif
条件声明。
这些答案是O(n),因此比使用的代码多一点,mylist.count()
但mylist
随着时间的延长,效率会大大提高
如果您只想知道重复项,请使用collections.Counter
from collections import Counter
mylist = [20, 30, 25, 20]
[k for k,v in Counter(mylist).items() if v>1]
如果您需要了解索引,
from collections import defaultdict
D = defaultdict(list)
for i,item in enumerate(mylist):
D[item].append(i)
D = {k:v for k,v in D.items() if len(v)>1}
我需要从一个列表中追加一些重复的值到一个子列表中,让我用一个例子来解释: 我有一个名为的变量,它包含大写字母字符串和符号。 我的最终目标是拥有这个数组: 在示例中,我需要将所有的符号分组到原始中的子列表中,我想过在数组中迭代,找到当前附近的所有符号,然后创建第二个数组,但我想也许还有更多的pythonic我可以做的,有什么想法吗?
问题内容: 如果想基于每个嵌套列表的第一个元素评估重复项,谁能提出一个好的解决方案从嵌套列表中删除重复项? 主列表如下所示: 如果已经在第一位置出现了另一个具有相同元素的列表,那么我想删除该列表并得到以下结果: 您可以建议一种算法来实现此目标吗? 问题答案: 您是否关心保留订单/删除了哪些重复项?如果不是,则: 会做的。如果您想保留订单并想保留第一个订单,则:
下面的代码应该收集来自用户的数字输入,将其放入一个列表中,并对它们进行排序: 这段代码正在打印“无”,而不是打印我的排序列表。我少了哪一步?
我试图在列表中的列表中插入一些东西,但是我不知道该怎么做。 例如,我有一个列表列表: 我想将插入子列表,索引为0,位于元素之后,所以它看起来像这样:
问题内容: 这个问题已经在这里有了答案 : 为什么+ =在列表上表现异常? (8个答案) 6年前关闭。 在尝试与列表不同的列表时,我注意到 例如: 在上面的代码中打印出了原始值 但是如果我在下面切换为 现在等于 价值不同的原因是什么? 问题答案: 为变量分配一个新值,同时 扩展 存储在变量中的列表。而且,由于中的列表与中的列表相同,因此附加到也会追加到,而为变量分配新值不会以任何方式更改分配给该值
考虑使用默认参数值的Python中的以下类方法定义: 然后,用户可以在没有参数的情况下调用它,就像 结果:参数值被默认值替换。 想象一下,在这种情况下,你想告诉用户这样的事情: 问题:有没有办法回溯以某种方式拦截以识别它(除了简单地将此初始化和验证逻辑移动到构造函数方法之外)?