Python中文
首页
教程
问答
标签
搜索
登录
注册
我有没有用这个重复数据消除功能来重新设计轮子?
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我在寻找一个类似于<code>set()</code>的方法来消除列表中的重复,除了原始列表中的项不可散列(它们是<code>dict</code>s)。在</p> <p>我花了一段时间寻找合适的东西,最后写了一个小函数:</p> <pre><code>def deduplicate_list(lst, key): output = [] keys = [] for i in lst: if not i[key] in keys: output.<a href="https://www.cnpython.com/list/append" class="inner-link">append</a>(i) keys.append(i[key]) return output </code></pre> <p>如果一个<code>key</code>被正确地给出并且是一个<code>string</code>,这个函数就可以很好地完成它的工作。不用说,如果我了解了一个允许相同功能的内置或标准库模块,我会很乐意放弃我的小例程,转而选择更标准和更健壮的选择。在</p> <p>你知道这样的实施吗?在</p> <p><strong>——注意</strong></p> <p>下面的一行<a href="https://stackoverflow.com/questions/9427163/remove-duplicate-dict-in-list-in-python">found from this answer</a></p> ^{pr2}$ <p>虽然很聪明,但不起作用,因为我必须处理嵌套的<code>dict</code>s项</p> <p><strong>——示例</strong></p> <p>为了清楚起见,下面是使用这样一个例程的示例:</p> <pre><code>with_duplicates = [ { "type": "users", "attributes": { "first-name": "John", "email": "john.smith@gmail.com", "last-name": "Smith", "handle": "jsmith" }, "id": "1234" }, { "type": "users", "attributes": { "first-name": "John", "email": "john.smith@gmail.com", "last-name": "Smith", "handle": "jsmith" }, "id": "1234" } ] without_duplicates = deduplicate_list(with_duplicates, key='id') </code></pre>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>您可以尝试一个简短的版本,该版本基于您在问题中提供的答案链接:</p> <pre><code>key = "id" deduplicated = [val for ind, val in enumerate(l) if val[key] not in [tmp[key] for tmp in l[ind + 1:]]] print(deduplicated) </code></pre> <p>注意,这将使用复制的最后一个元素</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
VirtualEnvRapper错误:路径python2(来自python=python2)不存在
1 回答
virtualenvs上的pyinstaller,没有名为导入错误的模块
10 回答
virtualenvs是否可以退回到用户包而不是系统包?
2 回答
virtualenvwrapper CentOS7
1 回答
virtualenvwrapper IOError:[Errno 13]权限被拒绝
1 回答
virtualenvwrapper mkproject和shell在windows中的启动问题?
6 回答
virtualenvwrapper mkvirtualenv不工作但没有错误
8 回答
Virtualenvwrapper python bash
10 回答
virtualenvwrapper:“workon”何时更改到项目目录?
7 回答
virtualenvwrapper:mkvirtualenv可以工作,但是rmvirtualenv返回bash:没有这样的文件或目录
9 回答
virtualenvwrapper:virtualenv信息存储在哪里?
8 回答
virtualenvwrapper:命令“python设置.pyegg_info“失败,错误代码为1
8 回答
virtualenvwrapper:如何将mkvirtualenv的默认Python版本/路径更改为ins
5 回答
Virtualenvwrapper:模块“pkg_resources”没有属性“iter_entry_points”
9 回答
Virtualenvwrapper:没有名为virtualenvwrapp的模块
9 回答
Virtualenvwrapper.bash_profi的正确设置
6 回答
Virtualenvwrapper.hook:权限被拒绝
9 回答
virtualenvwrapper.sh:fork:资源暂时不可用Python/Djang
1 回答
Virtualenvwrapper.shlssitepackages命令不工作
3 回答
Virtualenvwrapper.sh函数在bash sh中不可用
5 回答