프로그래밍/Python

Python-4) Sequence, Indexing, Slicing, len : Python, Python 설치, 시퀀스, 슬라이싱, 파이썬 마스터

LeeSeunghyuk 2020. 11. 9. 14:38
반응형

안녕하세요 이승혁입니다.

이번 시간에는 시퀀스 자료형을 조작하는 방법에 대해 실습을 진행해 보도록 하겠습니다.

 

※ 실습 자료

실습 csv 입니다.

python_nocol_emp.csv
0.00MB
python_nocol_dept.csv
0.00MB

 

 

    - import csv : csv파일을 사용하기 위한 모듈을 import합니다.

    - open : 경로에 적힌 파일을 여는데 'r' read 옵션을 사용해서 읽기 전용으로 엽니다

    - csv 옵션에 대한 설명 

      https://docs.python.org/ko/3/library/csv.html

 

csv — CSV 파일 읽기와 쓰기 — Python 3.9.0 문서

소위 CSV (Comma Separated Values – 쉼표로 구분된 값) 형식은 스프레드시트와 데이터베이스에 대한 가장 일반적인 가져오기 및 내보내기 형식입니다. CSV 형식은 RFC 4180에서 표준화된 방식으로 형식을

docs.python.org


 

※ 시퀀스 자료형

 

     어떤 객체가 순서를 가지고 나열되어 있는 것을 말합니다.

     문자열 'abcd'는 문자 a,b,c,d가 순서를 가지고 차례대로 나열되어 있는 것 입니다.

     첫 번째를 0번부터 번호를 매깁니다.

 

ex ) 

text='abcd'
print('text[0]=',text[0])
print('text[1]=',text[1])
print('text[2]=',text[2])
print('text[3]=',text[3])

     마이너스(-)를 사용해서 나타낼 수도 있습니다. 가장 뒤 문자는 -1 숫자로 나타냅니다.

 

ex)

text='abcd'
print('text[-1]=',text[-1])
print('text[-2]=',text[-2])
print('text[-3]=',text[-3])
print('text[-4]=',text[-4])


 

※ 시퀀스 자료 인덱싱 이해하기

 

     인덱싱(indexing)이란 시퀀스 자료형에서 인덱스를 통해 해당 값을 얻는 방법입니다.

     파이썬에서는 인덱스를 0부터 시작해, 음수 인덱스도 사용이 가능합니다.

    음수 인덱스는 '끝에서 n번째' 라는 의미와 같습니다.

 

실습 1. Indexing, [0,2,3,5,2,1] 리스트에서 1과 3을 출력해보기

test_list=[0,2,3,5,2,1]
print(test_list[2])    # 앞에서 3번째
print(test_list[-1])   # 뒤에서 1번째

 

실습 2. Indexing, [0,2,3,5,[4,1,7,8]] 리스트에서 4와 7 출력해보기

test_list=[0,2,3,5,[4,1,7,8]]
print(test_list[4][0])
print(test_list[4][2])

test_list 변수의 5번째(test_list[4])의 원소는 [4,1,7,8] 리스트입니다.

거기서 1번째, 3번째 원소가 4와 7이므로 위 코드와 같이 작성해 출력할 수 있습니다.

 


※ 시퀀스 자료 슬라이싱 이해하기

 

     인덱싱은 인덱스에 해당하는 요소 하나를 취하는 방법입니다.

     슬라이싱(slicing)은 시퀀스 자료에서 일정 범위에 해당하는 부분을 취하는 방법입니다.

     시퀀스[ 시작index : 끝index+1 ]

 

ex) 

alpha='abcdefghijklmnopqrstuvwxyz'
print('alpha[0:3] =',alpha[0:3])
print('alpha[3:6] =',alpha[3:6])

실습 3. slicing 사원의 이름을 앞에서 3개만 출력해보기

import csv
f=open('d:\\python\\python_nocol_emp.csv','r')
emp_csv=csv.reader(f)
emp=[i for i in emp_csv]

for i in emp:
    print(i[1][0:3] ,i[1])

 

   

 

 

   실습 4. slicing , 이름을 뒤에서 3글자 출력해보기

import csv
f=open('d:\\python\\python_nocol_emp.csv','r')
emp_csv=csv.reader(f)
emp=[i for i in emp_csv]

for i in emp:
    print(i[1][-3:] ,i[1])

 

    슬라이싱 사용 시 [-3:] 표현으로 '뒤 3번째 글자 부터 끝까지' 라는 의미를 나타낼 수 있습니다.


※ 시퀀스 자료 연결 이해하기(+)

 

      자료형이 동일한 두 개의 시퀀스 자료는 + 연산자로 순서있게 연결해 새로운 시퀀스 자료를 만들 수 있습니다.

      문자열 + 문자열 , 리스트 + 리스트 , 튜플 + 튜플 과 같이 두 개의 동일한 시퀀스 자료형에 대해

      '+' 연산자로 연결이 가능합니다.

 

ex)

a='My'
b=' name'
c=' is'
d=' Lee seung hyuk'
print(a+b+c+d)

실습 5. 자료 연결을 통해 사원의 이름, 부서, 부서번호 출력해보기

import csv
f=open('d:\\python\\python_nocol_emp.csv','r')
emp_csv=csv.reader(f)
f2=open('d:\\python\\python_nocol_dept.csv','r')
dept_csv=csv.reader(f2)
emp=[i for i in emp_csv]
dept=[i for i in dept_csv]

for i in emp:
    for j in dept:
        if i[7]==j[0]:
            print(i[1],j[0],j[2])
            print('자료 연결 : ',i[1]+j[0]+j[2]+'\n')


※ 시퀀스 자료의 반복

 

     동일한 시퀀스 자료를 반복해 새로운 시퀀스 자료를 만들고자 하면 별표(*)를 연산자로 사용합니다.

 

ex)

a='123'
print(a*3)

※ 시퀀스 자료의 크기(길이)

 

     모든 시퀀스 자료는 고정된 크기 또는 길이를 가지고 있습니다.

     시퀀스 자료의 크기는 시퀀스 자료를 구성하는 요소의 개수입니다.

     

ex)

a='123'
b=[1,2,3]
c=(0,'','1',2)
print('len(a):',len(a))
print('len(b):',len(b))
print('len(c):',len(c))

 

이번 포스팅은 시퀀스 자료형을 조작하는 방법에 대해 실습을 진행해 보았습니다.

 

다음 포스팅에서는 리스트형, 튜플형 , 사전형에 대해 알아보고 함수에 대한 실습을 진행해 보도록 하겠습니다.

감사합니다.

반응형