정규표현식으로 리스트 속에 패턴을 가진 항목이 있는지 확인할 수 있는 방법이 있을까요?

안녕하세요?
파이썬을 공부하다가 막히는 것이 있어 질문드립니다.

list = [1221, 53321, 42, 5682, 497]

1.위 list에서 '33'을 가진 항목이 있는지 확인하는 방법
2. 그 항목의 index값을 구할 수 있는 방법이 있을까요?

답변해주시면 감사드리겠습니다!

뿌얘미 528

2021년 1월 5일 5:23 오후

목록으로
1개의 답변이 있습니다. 1 / 1 Page

요소가 있는지 검사는 in 을 사용하면 되고 인덱스를 구하기 위해서는 index 함수를 사용하시면 됩니다.
다음 예제를 참고하세요.

>>> a = [1221, 53321, 42, 5682, 497]
>>> 33 in a
False
>>> 1221 in a
True
>>> a.index(33)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: 33 is not in list
>>> a.index(1221)
0

추가답변

33을 체크하려면 숫자를 문자로 바꾼후에 확인해야 할 것 같네요.
다음처럼 map으로 숫자를 문자열로 바꾼후에 33이 있는지를 확인하면 될것 같습니다.

>>> a = [1221, 53321, 42, 5682, 497]
>>> [a.index(int(i)) for i in map(str, a) if i.find('33') !=-1]
[1]

박응용

M 2021년 1월 5일 7:21 오후

앗 빠른 답변 감사합니다!! 그런데 질문을 잘못 드렸습니다ㅜㅜ 리스트 안에 '33'이라는 패턴을 가진 객체가 있는지 확인하는 방법이 있을까요? 위에 있는 53321과 같은 객체가 존재하면 True를 출력할 수 있는 방법이 있는지 궁금했습니다! - 뿌얘미님, 2021년 1월 5일 7:13 오후 추천 , 대댓글
@뿌얘미님 추가답변 드렸습니다. - 박응용님, 2021년 1월 5일 7:21 오후 추천 , 대댓글
@박응용님 감사합니다! 정말 신기합니다..... - 뿌얘미님, 2021년 1월 5일 9:48 오후 추천 , 대댓글