Как проверить значения, если он имеет как / же ключ в dict в Python? - PullRequest
1 голос
/ 29 февраля 2012

как я могу проверить значения, если ключ имеет 'extra_' in dict?

это то, что я сделал:

>>> dict =  { u'last_name': [u'hbkjh'], u'no_of_nights': [u'1'], u'check_in': [u'2012-03-19'], u'no_of_adult': [u'', u'1'], u'csrfmiddlewaretoken': [u'05e5bdb542c3be7515b87e8160c347a0'], u'memo': [u'kjhbn'], u'totalcost': [u'1800.0'], u'product': [u'4'], u'exp_month': [u'1'], u'quantity': [u'2'], u'price': [u'900.0'], u'first_name': [u'sdhjb'], u'no_of_kid': [u'', u'0'], u'exp_year': [u'2012'], u'check_out': [u'2012-03-20'], u'email': [u'ebmalifer@agile.com.ph'], u'contact': [u'3546576'], u'extra_test1': [u'jknj'], u'extra_test2': [u'jnjl'], u'security_code': [u'3245'], u'charged': [u'200.0']}
>>> for x in dict:
...  x
... 
u'totalcost'
u'check_in'
u'last_name'
u'extra_test2'
u'memo'
u'extra_test1'
u'product'
u'email'
u'charged'
u'no_of_nights'
u'no_of_kid'
u'contact'
u'exp_month'
u'first_name'
u'no_of_adult'
u'csrfmiddlewaretoken'
u'exp_year'
u'check_out'
u'price'
u'security_code'
u'quantity'
>>> 

это то, что я хочу быть выводомесли dict имеет ключ типа 'extra_':

u'extra_test1' : [u'jknj']
u'extra_test2' : [u'jnjl']

заранее спасибо ...

Ответы [ 4 ]

6 голосов
/ 29 февраля 2012
In [4]: dict((k,v) for k,v in d.items() if k.startswith('extra_'))
Out[4]: {u'extra_test1': [u'jknj'], u'extra_test2': [u'jnjl']}

где d - ваш словарь. Я переименовал его, чтобы он не затенял встроенную .

3 голосов
/ 29 февраля 2012

Используйте понимание слова:

>>> {k: v for k,v in d.iteritems() if k.startswith('extra_')}
{u'extra_test1': [u'jknj'], u'extra_test2': [u'jnjl']}
2 голосов
/ 29 февраля 2012
for k in your_dict:
    if k.startswith('extra_'):
        print '%r : %r' % (k, your_dict[k])
2 голосов
/ 29 февраля 2012

Единственный способ - перебрать ключи и проверить их:

for key in dict_.iterkeys():
    if key.startswith('extra_'):
        ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...