2015-04-08 2 views
1

Мне нужно создать функцию, которая принимает два списка. Первый - список слов, таких как ["tant", "", "you"], а во втором списке ["hi", "something", "both", "sporte "]. Я хочу словарь с количеством раз, когда слова первого списка появляются во втором.Количество раз появляется слово

Мой код дает мне обратное, то есть дает мне количество раз, когда слова второго списка появляются в первом. Это мой код:

from collections import Counter  
    timesmumber def (x, y):    
     number = x 
     dicitio = Counter (number) 
     return dict (dicitio) 

ответ

4

Вы можете использовать словарь понимание с list.count метода:

>>> l2=["hi", "something", "both", "sporte "] 
>>> l1=["tant", "", "you","hi"] 
>>> {i:l2.count(i) for i in l1} 
{'': 0, 'you': 0, 'tant': 0, 'hi': 1} 

Если вы хотите, чтобы проверить префикс вы можете использовать sum функцию вместо count:

>>> l1=['some', 'tant', '', 'you', 'hi'] 
>>> l2=['hi', 'something', 'both', 'sporte '] 
>>> {k:sum(1 for j in l2 if k and k in j) for k in l1} 
{'': 0, 'hi': 2, 'you': 0, 'tant': 0, 'some': 1} 
+0

это не работает, когда я использую в первом списке «бот» это не во втором, как «бот» в «ботлане», например, мне нужны префиксы – Lusokid

+0

@ Lusokid извините, я не понимаю, что вы имеете в виду? можете ли вы добавить это объяснение с примером к вашему вопросу? – Kasramvd

+0

Я хочу знать количество префиксов, которые появляются во втором списке, т. Е. В первом списке есть слова/префиксы и perciso, чтобы узнать, сколько раз эти префиксы появляются во втором как «some», «something»>> > некоторые; 1 – Lusokid

4

, так что у вас есть список

first_list = ['tant', '', 'you'] 

и второй список

second_list = ['hi', 'something', 'both', 'sporte', 'tant'] 

вы можете создать словарь со встроенным в count методом

{nr : second_list.count(nr) for nr in first_list} 
+0

спасибо !! но как я могу превратить это в цифру? the: {nr: second_list.count (nr) для nr в first_list} – Lusokid

+0

btw это не работает, когда я использую в первом списке «бот», он не во втором, как «бот» в «botlane» для примера . Что мне нужно - это префиксы – Lusokid