相关疑难解决方法(0)

删除列表中的重复项

几乎我需要编写一个程序来检查列表是否有任何重复项,如果有,它会删除它们并返回一个新列表,其中包含未复制/删除的项目.这就是我所拥有的,但说实话,我不知道该怎么做.

def remove_duplicates():
    t = ['a', 'b', 'c', 'd']
    t2 = ['a', 'c', 'd']
    for t in t2:
        t.append(t.remove())
    return t
Run Code Online (Sandbox Code Playgroud)

python algorithm intersection list duplicates

883
推荐指数
28
解决办法
137万
查看次数

如何在python中统一dict列表

我有一个清单:

d = [{'x':1, 'y':2}, {'x':3, 'y':4}, {'x':1, 'y':2}]
Run Code Online (Sandbox Code Playgroud)

{'x':1, 'y':2} 不止一次我想从列表中删除它.我的结果应该是:

 d = [{'x':1, 'y':2}, {'x':3, 'y':4} ]
Run Code Online (Sandbox Code Playgroud)

注意: list(set(d))这里没有工作抛出错误.

python

20
推荐指数
4
解决办法
2万
查看次数

如何使用一组通用键正确散列字典以实现重复数据删除目的?

我有一些日志数据,例如:

logs = [
 {'id': '1234', 'error': None, 'fruit': 'orange'},
 {'id': '12345', 'error': None, 'fruit': 'apple'}
]
Run Code Online (Sandbox Code Playgroud)

每个字典都有相同的键:'id''error''fruit'(在本例中)。

我想从此列表中删除重复项,但直接dictset基于基础的方法不起作用,因为我的元素本身就是dicts,不可散列

>>> set(logs)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unhashable type: 'dict'
Run Code Online (Sandbox Code Playgroud)

另一种方法是排序并使用 itertools.groupby - 但字典也不具有可比性,因此这也不起作用:

>>> from itertools import groupby
>>> [k for k, _ in groupby(sorted(logs))]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module> …
Run Code Online (Sandbox Code Playgroud)

python python-3.x

18
推荐指数
2
解决办法
1469
查看次数

如何从python中具有重复字段的列表中删除dicts?

假设我有一个dicts列表.我将"重复"定义为列表中具有相同值的字段"id"的任何两个dicts(即使其他字段不同).如何删除这些重复项.

示例列表将是这样的:

[{'name': 'John' , 'id':1}, {'name': 'Mike' , 'id':5},{'name': 'Dan' , 'id':5}]
Run Code Online (Sandbox Code Playgroud)

在这种情况下,'Mike'和'Dan'将是重复的,其中一个需要删除.哪一个没关系.

python dictionary list duplicates

5
推荐指数
1
解决办法
285
查看次数

如何使字典列表中的值唯一?

我在Python中有一个字典列表,如下所示:

d = [{feature_a:1, feature_b:'Jul', feature_c:100}, {feature_a:2, feature_b:'Jul', feature_c:150}, {feature_a:1, feature_b:'Mar', feature_c:110}, ...]
Run Code Online (Sandbox Code Playgroud)

我想实现的是保持feature_a,_b_c独特的.

例如,如果我们有3项具有相同feature_a_b,但有3个不同的值feature_c 100,100,150,则操作之后,它应该是100150.

我怎样才能做到这一点?

================================================== ==============更新:

好的,感谢Anand的出色答案,它完美无缺.但是,我还有一个问题.

假设我们有一个新的feature_d,字典看起来像:

d = [{feature_a:1, feature_b:'Jul', feature_c:100, feature_d:'A'}, {feature_a:2, feature_b:'Jul', feature_c:150, feature_d: 'B'}, {feature_a:1, feature_b:'Mar', feature_c:110, feature_d:'F'}, ...]
Run Code Online (Sandbox Code Playgroud)

我只想重复数据删除feature_a,_b并且_c,但是离开feature_d了.我怎样才能做到这一点?

非常感谢.

python unique

5
推荐指数
1
解决办法
2653
查看次数

如何在列表中删除重复的字典?

对于动态值,有时值将保持重复,比如变量

table = [
    {'man':'tim','age':'2','h':'5','w':'40'},
    {'man':'jim','age':'4','h':'3','w':'20'},
    {'man':'jon','age':'24','h':'5','w':'80'}, 
    {'man':'tim','age':'2','h':'5','w':'40'},
    {'man':'tto','age':'7','h':'4','w':'49'}    
]
Run Code Online (Sandbox Code Playgroud)

这里{'man':'tim','age':'2','h':'5','w':'40'}字典集重复两次这些都是动态值.

如何停止重复此操作,因此列表在将其呈现为模板之前不会包含任何重复的字典?

编辑:实际数据

[{'scorecardid': 1, 'progress2': 'preview', 'series2': 'Afghanistan v Zimbabwe in UAE, 2018', 'Commentary1': '/Commentary1', 'commentaryid': 1, 'matchid2': '10', 'matchno2': '5th ODI', 'teams2': 'AFG vs ZIM', 'matchtype2': 'ODI', 'Scorecard1': '/Scorecard1', 'status2': 'Starts on Feb 19 at 10:30 GMT'}, {'six2': '0', 'scorecardid': 2, 'overs5': '4', 'fours1': '0', 'overs10': '20', 'Batting_team_img': 'images/RSA.png', 'wickets20': '5', 'wickets6': '1', 'Bowling_team_img': 'images/IND.png', 'maidens6': '0', 'Batting team': 'RSA', 'matchid2': '9', 'name6': 'Unadkat', 'teams2': 'RSA …
Run Code Online (Sandbox Code Playgroud)

python

5
推荐指数
1
解决办法
122
查看次数

字典集的所有组合为K N大小的组

虽然这很简单,但遗憾的是,事实并非如此.

我正在尝试构建一个函数来获取可迭代的字典(即,一个唯一的字典列表)并返回字典的唯一分组列表的列表.

如果我有x球员,我想组建k一支n规模很大的球队.

来自CMSDK的这个问题和一组答案是我能找到的解决方案最接近的问题.为了使它从处理字母串到词典,我发现我的Python技能不足.

我正在改编的原始功能来自第二个答案:

import itertools as it
def unique_group(iterable, k, n):
    """Return an iterator, comprising groups of size `k` with combinations of size `n`."""
    # Build separate combinations of `n` characters
    groups = ("".join(i) for i in it.combinations(iterable, n))    # 'AB', 'AC', 'AD', ...
    # Build unique groups of `k` by keeping the longest sets of characters
    return (i for i in it.product(groups, repeat=k) 
                if len(set("".join(i))) == sum((map(len, i))))     # …
Run Code Online (Sandbox Code Playgroud)

python algorithm combinations dictionary python-itertools

5
推荐指数
1
解决办法
151
查看次数

将词典列表转换为一组词典

如何从一个词典列表中制作一组词典?

例:

import copy

v1 = {'k01': 'v01', 'k02': {'k03': 'v03', 'k04': {'k05': 'v05'}}}
v2 = {'k11': 'v11', 'k12': {'k13': 'v13', 'k14': {'k15': 'v15'}}}

data = []
N = 5
for i in range(N):
    data.append(copy.deepcopy(v1))
    data.append(copy.deepcopy(v2))

print data
Run Code Online (Sandbox Code Playgroud)

您将如何从列表中创建一组词典data

NS:一本字典在结构上相同时就等于另一本。这意味着,它们具有完全相同的键和相同的值(递归)

python dictionary

4
推荐指数
1
解决办法
3445
查看次数

Python:使字典列表对于一个键而言唯一

我有一个字典列表,其中的键值之一不是唯一的:

arr = [{'host': '144.217.103.15', 'port': 3000}, 
       {'host': '158.69.115.201', 'port': 8080},
       {'host': '144.217.103.15', 'port': 1020},]
Run Code Online (Sandbox Code Playgroud)

我想使给定的数组在“主机”键方面唯一,以便最终输出为:

result = [{'host': '158.69.115.201', 'port': 8080}, 
          {'host': '144.217.103.15', 'port': 1020},]
Run Code Online (Sandbox Code Playgroud)

或者可能是:

result = [{'host': '144.217.103.15', 'port': 3000}, 
          {'host': '158.69.115.201', 'port': 8080},]
Run Code Online (Sandbox Code Playgroud)

Python的这样做方式是什么?

python dictionary python-3.x

2
推荐指数
1
解决办法
207
查看次数

TypeError:“ dict”和“ dict”的实例之间不支持“ &lt;”

我在python 2.7中具有按值排序的功能,但是我试图升级到python 3.6,却收到该错误:

TypeError:“ dict”和“ dict”的实例之间不支持“ <”

这是我的代码

server_list = []

for server in res["aggregations"]["hostname"]["buckets"]:
    temp_obj = []
    temp_obj.append({"name":server.key})        
    temp_obj.append({"stat": server["last_log"]["hits"]["hits"][0]["_source"][system].stat})
    server_list.append(temp_obj)
    server_list.sort(key=lambda x: x[0], reverse=False)
Run Code Online (Sandbox Code Playgroud)

当我将server_list声明为列表时,为什么将其视为字典。如何按名称属性对其进行排序?

sorting python-3.x

1
推荐指数
1
解决办法
5640
查看次数