简体   繁体   English

Python如何使用dict比较列表中的字符串

[英]Python how to compare string in a list with dict

I have a code like this: It will print Student 我有这样的代码:它会打印出Student

d= u'pen hahahahaha'
area  = [u'Apple',u'Banana',u'lemon']
area2 = [ u'pen',u'book',u'chair' ]
area3 = [u'father',u'mother']
if any(d.startswith(i) for i in area):
    category = 'Fruit'
    print 'Fruit'
elif any(d.startswith(i) for i in area2):
    category = 'Student'
    print 'Student'
elif any(d.startswith(i) for i in area3):
    category = 'family'
    print 'family'

I want to know how to edit it to a mode like this: 我想知道如何将其编辑为如下模式:

aa = [{"Fruit":[u'Apple',u'Banana',u'lemon']},
      {"Student":[ u'pen',u'book',u'chair' ]},
      {"Family":[u'father',u'mother']}]

So I can compare if 'pen hahahahaha' in {"Student":[ u'pen',u'book',u'chair' ]} 因此,我可以比较{"Student":[ u'pen',u'book',u'chair' ]} 'pen hahahahaha'
save category = 'Student' 保存category = 'Student'

I think for a while but have no idea,please guide me.Thank you 我想了一会儿,但不知道,请引导我。谢谢

You can use loop: 您可以使用循环:

categories = {
    "Fruit": [u'Apple', u'Banana', u'lemon'],
    "Student": [u'pen', u'book', u'chair'],
    "Family": [u'father', u'mother']
}


def get_category(value):
    for cat, cat_entries in categories.iteritems():
        for cat_entry in cat_entries:
            if value.startswith(cat_entry):
                return cat
    return None


print get_category('pen hahahahaha')

Output: 输出:

Student

Make aa a dictionary like: aa字典,如:

aa = {"Fruit":[u'Apple',u'Banana',u'lemon'],
      "Student":[ u'pen',u'book',u'chair' ],
      "Family":[u'father',u'mother']}

obj = 'pen'   
for key in aa:
    if obj in aa[key]:
        print(obj + ' is in ' + key)

edit: May be this will suit your requirement more 编辑:也许这将更适合您的要求

aa = {"Fruit":[u'Apple',u'Banana',u'lemon'],
      "Student":[ u'pen',u'book',u'chair' ],
      "Family":[u'father',u'mother']}

obj = u'pen hahhah'   
for key in aa:
    for item in aa[key]:
        if obj.startswith(item):
            print(obj + ' is in ' + key)
aa = [{"Fruit":[u'Apple',u'Banana',u'lemon']},
  {"Student":[ u'pen',u'book',u'chair' ]},
  {"Family":[u'father',u'mother']}]
d=u'pen haaaaaa'
print [ x.keys()[0] for x in aa for y in x.values()[0] if y in d.split() ]

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM