리스트의 모든 요소가 특정 숫자들로만 구성되어 있는지 확인해야 하는 경우, join 메서드와 간단한 반복문을 활용하면 쉽게 해결할 수 있습니다.
예제
아래는 이를 구현한 예제 코드입니다.
my_list = [415, 133, 145, 451, 154]
print("The list is :")
print(my_list)
my_digits = [1, 4, 5, 3]
digit_string = ''.join([str(ele) for ele in my_digits])
all_elems = ''.join([str(ele) for ele in my_list])
my_result = True
for element in all_elems:
for ele in element:
if ele not in digit_string:
my_result = False
break
if(my_result == True):
print("All elements have been made from required digits")
else:
print("All elements haven't been made from required digits")출력 결과
The list is : [415, 133, 145, 451, 154] All elements have been made from required digits
코드 설명
먼저 숫자들을 담은 리스트를 정의하고 콘솔에 출력합니다.
허용할 숫자들을 담은 또 다른 리스트(정수형)를 정의합니다.
리스트 컴프리헨션(list comprehension)을 사용해 허용 숫자 리스트를 문자열로 변환한 뒤
join메서드로 하나의 문자열로 합칩니다.이 결과는 변수에 저장됩니다.
같은 방식으로 첫 번째 리스트의 모든 요소를 문자열로 변환하여 합치고, 별도의 변수에 할당합니다.
결과를 나타낼 변수를 초기값
True로 설정합니다.합쳐진 전체 문자열을 한 글자씩 반복하면서, 해당 글자가 허용된 숫자 문자열에 없으면 결과 변수를
False로 변경하고 반복을 종료합니다.모든 검사가 끝난 후에도 결과 변수가
True라면, 리스트의 모든 요소가 필요한 숫자들로만 만들어졌다는 메시지를 콘솔에 출력합니다. 그렇지 않다면 그렇지 않다는 메시지를 출력합니다.