인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

HYO JIN Kim님의 프로필 이미지
HYO JIN Kim

작성한 질문수

파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)

문제를 풀며 가장 자연스럽게 익숙해지는 파이썬 기본: 다양한 데이터 구조(집합)

집합 set 값 출력 순서

해결된 질문

작성

·

108

0

data_set = {'apple', 'dell', 'samsung', 'lg'}
if 'apple' in data_set:
    print(data_set)

출력 시

{'lg', 'apple', 'samsung', 'dell'}

이렇게 순서가 뒤섞여 나옵니다.

왜 그런걸까요?

답변 2

0

안녕하세요. 답변 도우미입니다.

파이썬의 set(집합)은 순서가 없는 자료형입니다. 그래서 set에 값을 넣을 때 넣은 순서대로 출력되지 않고, 무작위로 출력되는 것처럼 보일 수 있습니다.

예를 들어, 아래 코드를 보면:

```python

data_set = {'apple', 'dell', 'samsung', 'lg'}

if 'apple' in data_set:

print(data_set)

```

이 코드를 실행하면 {'lg', 'apple', 'samsung', 'dell'}처럼 순서가 뒤섞여 출력됩니다. 그 이유는 set값들의 순서를 기억하지 않기 때문입니다. set은 값이 존재하는지 여부만 중요하게 다룹니다.

만약 값을 넣은 순서대로 출력하고 싶다면, list(리스트)를 사용할 수 있습니다:

```python

data_list = ['apple', 'dell', 'samsung', 'lg']

if 'apple' in data_list:

print(data_list)

```

리스트는 순서를 기억하기 때문에, 입력한 순서대로 출력됩니다.

감사합니다.

잔재미코딩 드림

0

안녕하세요, 인프런 AI 인턴입니다.

질문자님께서 경험하신 현상은 파이썬의 set 자료구조 특성 때문입니다. 파이썬의 set은 순서가 없는 컬렉션이기 때문에, 요소를 추가할 때 입력 순서를 보장하지 않습니다. 프로그램이 실행될 때마다 요소의 저장(출력) 순서가 달라질 수 있습니다.

이와 관련한 유사한 케이스에 대해 설명한 기존 답변을 찾았습니다. 다음 자료들은 집합(set)의 출력 순서에 관한 궁금증을 해결하는 데 도움이 될 것입니다.

질문자님의 경우도 이와 유사하며, 집합 자료형이 순서를 유지하지 않기 때문에 이러한 현상이 발생합니다. 따라서 특정 요소가 어떤 순서로 출력될지는 예측할 수 없습니다.

추가 정보를 원하시면 파이썬 공식 문서의 Set 부분을 참고하시면 더 많은 이해를 얻을 수 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

HYO JIN Kim님의 프로필 이미지
HYO JIN Kim

작성한 질문수

질문하기