函数检查python字典列表中是否存在值

2024-03-28 23:10:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个python OrderedDict列表:

Python 2.7.6 (default, Jun 16 2014, 11:06:18) 
[GCC 4.2.1 Compatible FreeBSD Clang 3.3 (tags/RELEASE_33/final 183502)] on freebsd10
Type "help", "copyright", "credits" or "license" for more information.
>>> from collections import OrderedDict
>>> my_list = [OrderedDict([(u'SR_CODE', u''), (u'SR_ACCOUNT', u'JEF001'), (u'SR_NAME', u''), (u'SR_DISCGRP', u''), (u'SR_PRCLIST', u'STD'), (u'SR_OVDISC', 0.0), (u'SR_SET1DAY', 0), (u'SR_SET1PCT', 0.0), (u'SR_SET2DAY', None), (u'SR_SET2PCT', None), (u'SR_DEBTLTR', True), (u'SR_DEBTMIN', 1), (u'SR_TERMTYP', 1), (u'SR_TERMDAY', 0), (u'SR_SDSCDEL', None), (u'SR_VATINCL', None), (u'SR_LASTUPD', None)]), OrderedDict([(u'SR_CODE', u''), (u'SR_ACCOUNT', u'JEN001'), (u'SR_NAME', u''), (u'SR_DISCGRP', u''), (u'SR_PRCLIST', u'STD'), (u'SR_OVDISC', 0.0), (u'SR_SET1DAY', 0), (u'SR_SET1PCT', 0.0), (u'SR_SET2DAY', None), (u'SR_SET2PCT', None), (u'SR_DEBTLTR', True), (u'SR_DEBTMIN', 1), (u'SR_TERMTYP', 1), (u'SR_TERMDAY', 0), (u'SR_SDSCDEL', None), (u'SR_VATINCL', None), (u'SR_LASTUPD', None)]), OrderedDict([(u'SR_CODE', u''), (u'SR_ACCOUNT', u'MSJ001'), (u'SR_NAME', u''), (u'SR_DISCGRP', u''), (u'SR_PRCLIST', u'STD'), (u'SR_OVDISC', 0.0), (u'SR_SET1DAY', 0), (u'SR_SET1PCT', 0.0), (u'SR_SET2DAY', None), (u'SR_SET2PCT', None), (u'SR_DEBTLTR', True), (u'SR_DEBTMIN', 1), (u'SR_TERMTYP', 1), (u'SR_TERMDAY', 0), (u'SR_SDSCDEL', None), (u'SR_VATINCL', None), (u'SR_LASTUPD', None)]), OrderedDict([(u'SR_CODE', u''), (u'SR_ACCOUNT', u'IDE001'), (u'SR_NAME', u''), (u'SR_DISCGRP', u''), (u'SR_PRCLIST', u'STD'), (u'SR_OVDISC', 0.0), (u'SR_SET1DAY', 0), (u'SR_SET1PCT', 0.0), (u'SR_SET2DAY', None), (u'SR_SET2PCT', None), (u'SR_DEBTLTR', True), (u'SR_DEBTMIN', 1), (u'SR_TERMTYP', 1), (u'SR_TERMDAY', 0), (u'SR_SDSCDEL', None), (u'SR_VATINCL', None), (u'SR_LASTUPD', None)])]

对于'SR\u ACCOUNT',u'JEF001',获取列表索引值的正确方法是什么

我可以检查帐户id是否存在:

>>> if any(d.get('SR_ACCOUNT', None) == 'JEF001' for d in my_list):

但我不知道如何归还这本具体的词典?你知道吗

有什么建议吗


Tags: namenonecodeaccountordereddictstdsrset2day
1条回答
网友
1楼 · 发布于 2024-03-28 23:10:19

我应该使用生成器表达式http://www.python.org/dev/peps/pep-0289/

>>> next((item for item in my_list if item["SR_ACCOUNT"] == "JEF001"), None)
OrderedDict([(u'SR_CODE', u''), (u'SR_ACCOUNT', u'JEF001'), (u'SR_NAME', u''), (u'SR_DISCGRP', u''), (u'SR_PRCLIST', u'STD'), (u'SR_OVDISC', 0.0), (u'SR_SET1DAY', 0), (u'SR_SET1PCT', 0.0), (u'SR_SET2DAY', None), (u'SR_SET2PCT', None), (u'SR_DEBTLTR', True), (u'SR_DEBTMIN', 1), (u'SR_TERMTYP', 1), (u'SR_TERMDAY', 0), (u'SR_SDSCDEL', None), (u'SR_VATINCL', None), (u'SR_LASTUPD', None)])

相关问题 更多 >