簡體   English   中英

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

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

我有這樣的代碼:它會打印出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'

我想知道如何將其編輯為如下模式:

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

因此,我可以比較{"Student":[ u'pen',u'book',u'chair' ]} 'pen hahahahaha'
保存category = 'Student'

我想了一會兒,但不知道,請引導我。謝謝

您可以使用循環:

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')

輸出:

Student

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)

編輯:也許這將更適合您的要求

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