我有一些日志数据,例如:
logs = [
{'id': '1234', 'error': None, 'fruit': 'orange'},
{'id': '12345', 'error': None, 'fruit': 'apple'}
]
Run Code Online (Sandbox Code Playgroud)
每个字典都有相同的键:'id'、'error'和'fruit'(在本例中)。
我想从此列表中删除重复项,但直接dict且set基于基础的方法不起作用,因为我的元素本身就是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) 我的输入是一个列表,比如说 l
它可以包含 4 个或 5 个元素。我想将它分配给5个变量,也就是说a,b,c,d和e。
如果列表只有 4 个元素,那么第三个变量 ( c) 应该是None.
如果 python 有一个增量 (++) 运算符,我可以做这样的事情。
l = [4 or 5 string inputs]
i = -1
a = l[i++]
b = l[i++]
c = None
if len(l) > 4:
c = l[i++]
d = l[i++]
e = l[i++]
Run Code Online (Sandbox Code Playgroud)
除了i+=1在每次作业之前写作之外,我似乎找不到一种优雅的方式来做到这一点。有没有更简单的pythonic方法来做到这一点?
当新问题弹出时,我创建了一个新分支。这些分支被命名为starting issu。与master这些分支合并后,将被删除。我想获得所有这些分支机构的清单。我能够使用git reflog
>git reflog
55e8b45 (HEAD -> master, origin/master, origin/HEAD) HEAD@{0}: merge issu4-HasScript-and-HasFormat-checkbox-toggle: Fast-forward
7caf2c6 HEAD@{1}: checkout: moving from issu4-HasScript-and-HasFormat-checkbox-toggle to master
55e8b45 (HEAD -> master, origin/master, origin/HEAD) HEAD@{2}: commit (amend): Column validation including Has-Script and Has-Format
490a29a HEAD@{3}: commit: Column validatio inclnsuding Has Script and Has Format
7caf2c6 HEAD@{4}: checkout: moving from master to issu4-HasScript-and-HasFormat-checkbox-toggle
7caf2c6 HEAD@{5}: merge issu3-make-SFTPFingerprint-required: Fast-forward
fbad7cd HEAD@{6}: checkout: moving from issu3-make-SFTPFingerprint-required to master
...
Run Code Online (Sandbox Code Playgroud)
有什么方法可以过滤这些条目,以使所有合并都以开头issu。
我试图获取所有已删除的分支,这些分支已合并到master并以开头issu …