![](/img/trans.png)
[英]Q: Dict comprehension on a dictionary of pandas dataframes, with a function with multiple outputs
[英]Dictionary comprehension with Q
假設我有以下代碼:
criteria = {'description': 'tt', 'hostname': '2'}
filters = Q()
{filters.add(Q(**{k+'__icontains': v}), Q.AND) for k,v in criteria.items()}
我不知道如何避免結果加倍:
{<Q: (AND: ('description__icontains', 'tt'), ('hostname__icontains', '2'))>,
<Q: (AND: ('description__icontains', 'tt'), ('hostname__icontains', '2'))>}
我知道我應該將Q.AND
轉移Q.AND
某個地方,不是嗎?
看起來您正在檢查set
推導式的結果set
,它在修改后兩次列出相同的Q
對象( filters
)。 這實際上不是問題 - 您不會在任何地方使用該結果集 - 但它看起來確實有點令人驚訝。
作為替代方案,應該可以一次性通過Q()
所有kwargs
:
criteria = {'description': 'tt', 'hostname': '2'}
filters = Q(**{k + '__icontains': v for k, v in criteria.items()})
這消除了對集合理解的需要。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.