inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

문제를 풀며 가장 자연스럽게 익숙해지는 파이썬 기본: 반복문과 다양한 데이터구조 활용2

57번 질문입니다

249

Bridge

작성한 질문수 4

0

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
 
16:20 초 가량

data.keys() 를 item 에 집어넣으셨는데

그럼 item 은 data 의 키값을 가져오는건데

data[item] 을 하니 벨류값이 나오는지

도무지 이해가 안갑니다 ㅠ

56번도 같은 맥락으로 이해가 안갑니다.

감사합니다

파이썬 python 웹-크롤링

답변 2

0

tlstkdguq97

안녕하십니까. 57번 문제를 선생님과 조금 다르게 풀어 이 방법도 문제 없는 것인지 여쭈어 보고 싶어 문의 드립니다. 저 같은 경우 values를 list 형태로 만들지 않고 문제를 풀었습니다.

english={'environment':'환경 X', 'company':'회사 O', 'government':'정부, 정치 X', 'face':'얼굴 X'}

for e1 in english.keys():

if english[e1][-1]=="X":

print(e1)

이러한 형태로도 57번 문제의 지문이 원하는 바를 해치치 않고 잘 만든 코딩이라고 할 수 있을까요?

0

잔재미코딩 DaveLee

안녕하세요. 우선 코드는 정답이 없습니다. 결과만 원하는대로 나오면, 전혀 문제 없다고 보셔도 좋습니다. 상세한 설명은 다음과 같습니다.


1. for item in data.keys(): 안에서 data[item] 이 value 가 되는 이유

data = {'a': 1, 'b': 2}

for item in data.keys():   # item  ←  'a',  'b'
    print(item, data[item])  # data['a'] → 1,  data['b'] → 2
  • dict.keys()키들의 모음 (dict_keys) 을 돌려주고,
    for 반복문에 넣으면 하나씩 item 변수에 들어갑니다.

  • 딕셔너리는 dict[key] 형태로 값을 조회하므로 data[item] 은 그 키에 매달린 value 를 꺼냅니다.
    → “키 → 값” 매핑이 한눈에 보이지 않아 헷갈릴 뿐, 사실상 리스트/튜플 인덱싱과 같은 원리입니다.

56번 질문도 같은 패턴입니다.
for k in some_dict: ---> k 는 키 → some_dict[k] 로 값을 꺼낼 수 있다는 점만 기억하세요.


2. 제안하신 코드가 57번 요구사항을 충족하는가?

english = {
    'environment': '환경 X',
    'company':     '회사 O',
    'government':  '정부, 정치 X',
    'face':        '얼굴 X'
}

for key in english.keys():          # 또는 그냥 for key in english:
    if english[key][-1] == "X":     # value 문자열의 마지막 글자가 'X'?
        print(key)

충분히 깔끔하고, 요구 조건(‘value 끝이 X 인 key 출력’)에 정확히 부합합니다.
추가로 고려해 볼 만한 자잘한 개선 포인트만 정리하면:

포인트 이유 예시 for key in english: 로 간단히 dict 를 직접 순회해도 키가 나옵니다. for key in english:.endswith('X') 사용 가독성 ↑, 인덱스 오류 위험 ↓ if english[key].endswith('X'): 키–값을 모두 써야 할 땐 for k, v in english.items(): 별도 인덱싱 없이 한 줄에 접근 for k, v in english.items():

성능 면에서도, 별도 list(english.values()) 를 만들지 않았으므로 메모리·속도 모두 유리합니다.
따라서 지금 코드로 그대로 사용하셔도 전혀 문제 없습니다! 😊

0

잔재미코딩 DaveLee

안녕하세요.

사전 데이터 구조는 변수[키] = 값 으로 특정 키에 대한 값을 가져올 수 있습니다.

그래서, item 이 해당 data 변수가 가진 각각의 키 이고요. 이를 반복문으로 하나씩 가져오면서,

data[item] 이 각 키에 대한 값을 가져오게 되고, 이를 if 구문으로 조건을 체크하는 것입니다.

이렇게 쓰는 것이 어색하셔서 그러지 않을까 하는데 어떠실가요?

크롤링, 영상을 따라해도 제미나에게 물어봐도 안되요

0

28

1

정규표현식 및 여러 코드 꼭 외워야 하나요?

0

35

1

리스트 함수형도 정수 데이터 받을 수 있나요?

0

45

1

크롤링 관련 질문

0

62

1

문제 답이 없는 버전은 없나요?

0

74

1

requests, BeautifulSoup 임포트 부분에 대해 문의드립니다.

0

83

1

업데이트 강의

0

97

2

선생님 강의중에서 sqlite3 강의를 제공한 강의가 있나요?

0

123

2

연습용 예제 파일

0

76

1

lxml 관련 오류

0

106

1

SAVE Request 창 띄우는 법

0

90

1

포스트맨 사용법이 바뀌어서 강의를 따라가지 못하겠습니다. 2

0

72

1

포스트맨 사용법이 바뀌어서 강의를 따라가지 못하겠습니다.

0

93

1

예제 2, 4, 6에 대한 풀이 방식 질문.

0

89

1

문제 파일

0

78

1

pdf 파일 내 코드 복붙시 공백

0

291

1

데이터 저장 강좌 문의 건

0

95

1

" " 와 ' '의 차이를 알고 싶습니다

0

241

1

Exercise 22. 문자열 다루기 (strip)

0

131

1

list함수로 리스트 선언하면 실패하는데 이유는 무엇입니까?

0

187

1

셀 삽입후 바로 기입이 가능합니까?

0

139

2

주피터 노트북 마우스 스크롤? 오류

0

1543

2

등호 2개('==')의 의미가 뭐죠?

0

458

2

페이지가 넘어갈 때 url 변하지 않는 경우

0

261

1