특정 문자들만으로 구성된 문자열 조건에 맞는 튜플을 필터링해야 하는 경우, 리스트 컴프리헨션(list comprehension)과 'all' 연산자를 활용하면 간결하게 처리할 수 있습니다.
예제 코드
아래는 실제 동작을 보여주는 예제입니다.
my_list = [('pyt', 'best'), ('pyt', 'good'), ('fest', 'pyt')]
print("The list is :")
print(my_list)
char_string = 'pyestb'
my_result = [index for index in my_list if all(all(sub in char_string for sub in element) for element in index)]
print("The result is : ")
print(my_result)출력 결과
The list is :
[('pyt', 'best'), ('pyt', 'good'), ('fest', 'pyt')]
The result is :
[('pyt', 'best')]코드 설명
튜플 여러 개로 이루어진 리스트를 정의하고 콘솔에 출력합니다.
필터링 기준이 될 문자열(
char_string)을 하나 정의합니다.리스트 컴프리헨션을 사용해 리스트의 각 튜플을 순회하면서, 내부적으로 'all' 연산자를 적용하여 해당 문자열에 포함되지 않는 문자가 있는지 검사합니다.
조건을 통과한 튜플들만 모아 새로운 리스트로 만들고, 그 결과를 변수에 할당합니다.
최종 필터링 결과가 콘솔에 출력됩니다.
위 예제에서 ('pyt', 'best')>는 구성 문자가 모두 'pyestb' 안에 존재하므로 결과에 포함되지만, 'good'의 'g', 'o', 'd'나 'fest'의 'f'는 기준 문자열에 없기 때문에 제외됩니다. 이처럼 중첩된 'all' 연산자를 사용하면 튜플 내 모든 요소와 각 요소의 모든 문자를 한 번에 검증할 수 있습니다.