Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python - 주어진 단어가 문장 목록에 함께 나타나는지 확인

<시간/>

작은 문장을 요소로 포함하는 목록이 있다고 가정해 보겠습니다. 첫 번째 목록의 이 문장에 사용된 단어 중 일부를 포함하는 또 다른 목록이 있습니다. 두 번째 목록의 두 단어가 첫 번째 목록의 일부 문장에 함께 존재하는지 여부를 알고 싶습니다.

추가 및 for 루프 사용

for 루프를 in 조건과 함께 사용하여 문장 목록에 단어가 있는지 확인합니다. 그런 다음 len 함수를 사용하여 목록의 끝에 도달했는지 확인합니다.

list_sen = ['Eggs on Sunday', 'Fruits on Monday', 'Eggs and Fruits on Wednesday']
list_wrd = ['Eggs', 'Fruits']

print("Given list of sentences: \n",list_sen)
print("Given list of words: \n",list_wrd)

res = []
for x in list_sen:
   k = [w for w in list_wrd if w in x]
   if (len(k) == len(list_wrd)):
      res.append(x)
print(res)

출력

위의 코드를 실행하면 다음과 같은 결과가 나옵니다. -

Given list of sentences:
['Eggs on Sunday', 'Fruits on Monday', 'Eggs and Fruits on Wednesday']
Given list of words:
['Eggs', 'Fruits']
['Eggs and Fruits on Wednesday']

모두와 함께

여기서 우리는 문장이 포함된 목록에 단어가 있는지 확인하기 위한 for 루프를 설계한 다음 all 함수를 적용하여 실제로 모든 단어가 문장에 있는지 확인합니다.

list_sen = ['Eggs on Sunday', 'Fruits on Monday', 'Eggs and Fruits on Wednesday']
list_wrd = ['Eggs', 'Fruits']

print("Given list of sentences: \n",list_sen)
print("Given list of words: \n",list_wrd)

res = [all([k in s for k in list_wrd]) for s in list_sen]
print("\nThe sentence containing the words:")
print([list_sen[i] for i in range(0, len(res)) if res[i]])

위의 코드를 실행하면 다음과 같은 결과가 나옵니다. -

출력

Given list of sentences:
['Eggs on Sunday', 'Fruits on Monday', 'Eggs and Fruits on Wednesday']
Given list of words:
['Eggs', 'Fruits']

The sentence containing the words:
['Eggs and Fruits on Wednesday']

람다 및 지도 사용

위와 유사한 접근 방식을 취할 수 있지만 람다 및 맵 함수를 사용합니다. 우리는 또한 split 함수를 사용하고 문장과 함께 목록에 있는 모든 주어진 단어의 가용성을 확인합니다. map 함수는 이 논리를 다시 목록의 각 요소에 적용하는 데 사용됩니다.

list_sen = ['Eggs on Sunday', 'Fruits on Monday', 'Eggs and Fruits on Wednesday']
list_wrd = ['Eggs', 'Fruits']

print("Given list of sentences: \n",list_sen)
print("Given list of words: \n",list_wrd)

res = list(map(lambda i: all(map(lambda j:j in i.split(),
list_wrd)), list_sen))

print("\nThe sentence containing the words:")
print([list_sen[i] for i in range(0, len(res)) if res[i]])

출력

위의 코드를 실행하면 다음과 같은 결과가 나옵니다. -

Given list of sentences:
['Eggs on Sunday', 'Fruits on Monday', 'Eggs and Fruits on Wednesday']
Given list of words:
['Eggs', 'Fruits']

The sentence containing the words:
['Eggs and Fruits on Wednesday']