Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

파이썬 하는 파이리

Python_리스트 자료형 + 유용한 반복문 본문

프로그래밍/python

Python_리스트 자료형 + 유용한 반복문

gunnwu 2023. 2. 7. 20:58

1. 리스트 슬라이싱(Slicing)

  • 인덱스(index)를 사용하여 특정 범위의 요소를 찾는 과정
  • a[m,n]의 형태
  • m번쨰부터 n-1까지 
# 리스트 만들기
member = ['가', 85, '나', 95, '다', 90,' 라', 75]

# 슬라이싱
print(member[:2])
print(member[-4:-2])
print(member[3::-1]) #거꾸로 가져오기

실행결과

2. 리스트에 자주 사용되는 메소드

  •  append() : 맨뒤에 요소를 하나 추가(리스트를 추가하는것도 가능 리스트 내 요소결합X)
  • ex) a.append(5) , a.append([7,8])
  •  insert(위치,값) : 원하는 위치에 요소를 추가하기
  • ex) a.insert(2,30) => 2번째 자리에 30일 넣는다. 기존 2번째 요소는 오른쪽으로 밀림
  • extend() : append에 리스트를 추가하면 요소로 리스트가 들어가는것과 달리 리스트끼리 결합하는 메소드
  • ex) a.extend([5,6,7,8])
  • count() : 요소의 개수 확인
  • index():  요소의 위치 조회 
  • sort() : 오름차순 정렬
  • sort(reverse=True) : 내림차순 정렬
  • reverse() : 요소 뒤집기
  • remove(특정값) : 특정값(요소) 삭제
  • pop(위치) : 위치에 있는 요소 삭제 미입력시 마지막 요소부터 삭제
  • clear() : 모든요소 삭제

3. 리스트 복사

  • 리스트=리스트는 완벽한 복사가 아니다...?
  • 완전한 복사는 한 쪽에서의 변경이 다른쪽에 영향을 주지 않아야 한다.(범위를 지정해서 복사)
  • 뭔소리냐? 코드로 확인
# 리스트 복사
a = list(range(10))
copy1 = a                  # 그냥 복사
copy2 = a[:]               # 전체 범위를 지정하여 복사

# 리스트의 id 확인
print(a, id(a))
print(copy1,id(copy1)) 
print(copy2,id(copy2)) #id가 다르다. 영향을 받지 않는다=>완전한 복사


# copy1의 첫번째 값 변경 후 원본과 비교
copy1[0] = 'hi'

# 확인
print(copy1)
print(copy2) #리스트 요소가 변경 되지 않은걸 확인 영향 받지 않았다 => 완전한 복사
print(a)

id 확인 실행결과
요소 변경 실행결과

4. 리스트 컴프리헨션

  • 반복문의 코드가 매우 간결해지는 파이썬 스타일 코드
  • 반복문 + 조건문 코드를 한줄로 간편하게 작성가능.
# 리스트 만들기
a = [0, 1, 2, 3, 4]

# 리스트컴프리헨션
squares = [x**2 for x in a ]

# 확인
print(squares)

실행결과

  • 반복문+조건문
my_nums = [10, 22, 30, 41, 56, 60, 71, 80, 90]

# my_nums 리스트에서 10의 배수만을 뽑아 그 값을 10으로 나눈 몫을 갖는 새로운 리스트 만들기

new_nums = [x//10 for x in my_nums if x%10==0 ]

# 확인
print(new_nums)

실행결과

5. 딕셔너리와 for 문

  • 딕셔너리로 반복문 돌릴때 key와 value를 반환해주는 items()메소드
score = {'갑': 85, '을': 95, '병': 90}

for k,v in score.items():
    print(f'{k}: {v}')

실행결과

  • 리스트 컴프리헨션을 활용
score = {'갑': 85, '을': 95, '병': 90}

score_over_90 = {k: v for k, v in score.items() if v > 90}

# 확인
score_over_90

실행결과

6. 리스트와 enumerate()함수 

  • 문자열이나 컨테이너 자료형을 입력받아 순서와 요소를 포함하는 객체로 반환
  • 순서와 요소를 반환하여 몇 번째, 어떤 요소를 처리하는지 확인가능
member = ['갑', '을', '병', '정', '무']

for idx,mem in enumerate(member):
    if idx%2==0:
        print(f'{idx}: {mem}')

실행결과

※반영과 반환의 차이

반영 : a.메소드()

반환 : a = a.메소드() 

'프로그래밍 > python' 카테고리의 다른 글

PYthon_판다스(pandas)_(3)  (0) 2023.02.25
Python_판다스(pandas)_(2)  (0) 2023.02.11
Python_판다스(pandas)_(1)  (0) 2023.02.11
Python_배열(numpy)  (0) 2023.02.11
Python_함수  (0) 2023.02.07
Comments