擅长:python、mysql、java
<p>列表中的元素是一个条目字典,因此处理起来比必要的要麻烦得多。如果列表中每个元素只有一个account,那么应该改为使用tuple(account,allocations)。你知道吗</p>
<p>将List1转换为该格式(allocs变量)会使代码模式变得更直接:</p>
<pre><code>List1 = [{'A001':{'ABC':0.4, 'ABD':0.6}}, {'A002':{'ABC':0.5, 'ABD':0.4, 'EFG':0.1}}, {'A003':{'ABC':0.4, 'ABD':0.6}}, {'A004':{'ABC':0.4, 'ABD':0.6}}]
allocs = [ list(account.items())[0] for account in List1]
for account,alloc in allocs:
dups = [ac for ac,al in allocs if al == alloc and ac != account]
print( account, ", ".join(dups or ["no duplicates"]))
A001 A003, A004
A002 no duplicates
A003 A001, A004
A004 A001, A003
</code></pre>