JSITCLUB

파이썬 독학#12 - 여러값을 담는법 - 리스트(list) ,튜플(tuple) 본문

파이썬/입문

파이썬 독학#12 - 여러값을 담는법 - 리스트(list) ,튜플(tuple)

jsitclub 2020. 1. 3. 19:13

1. 리스트 

#1

리스트는 [](대괄호)로 묶여 있는 형태을 갖습니다. 문자열은 문자로만 구성된 시퀀스형이지만, 리스트는 다양한 자료형으로 만들수 있으며, 심지어 서로 다른 자료형으로 구성도 가능합니다.

#2

리스트는 값을 인덱스를 이용하여 바꿀수 있습니다.

lstMan의 2번째 값을 'F'로 바꿈 (값으로는 세번째인 'M'을 바꾸는 겁니다. 인덱스값은 0부터 시작한다는것을 늘 잊지 마세요.)

#3 리스트 연산

리스트도 덧셈,곱셈이 가능합니다.

#4 리스트 인덱싱/슬라이싱

리스트도 문자열과 같이 인덱싱과 슬라이싱이 가능합니다.

#5

시퀀스형 안에 있는 시퀀스형의 값을 갖고 오는 방법입니다.

만약 lstMan(시퀀스형)의 값인 'Daniel'(시퀀스형)의 'i'를 갖고 오고 싶을때 먼저  'Daniel'을 갖고 오려면 lstMan[1]을 사용해야 합니다(lstMan[1]=='Daniel'). 'Daniel'의 'i'를 가져오려면 우리는 'Daniel'[3]을 사용 해야하고요. 때문에 lstMan[1][3] 이라고 쓸수 있게되는 겁니다.

 

리스트의 연산, 인덱싱, 슬라이싱은 문자열에서 다룬 내용과 같습니다. 혹시 기억이 안나시면 문자열을 참고 하시기 바랍니다.

#1
lstNum=[1,2,3,4,5,6]                            
lstStr=['a','b','c','d','e']
lstMan=[1,'Daniel','M',34,[20,23,19]]

print(lstNum,lstStr)
print(lstMan)
print()

#2
lstMan[2]='F'
print(lstMan)
print()

#3
print(lstNum+lstStr)
print(lstNum *2)
print()

#4
print(lstMan[2])
print(lstMan[1:4])
print()

#5
print(lstMan[1][3])
print(lstMan[4][1])

 

2.리스트 메서드

리스트의 메서드 역시 많있지만, 여기에는 자주 사용하는 메서드만 적어 보았습니다. 여기에 있는 메서드 정도는 리스트 사용할때 유용하므로 기억해 두시기 바랍니다. 안그러면 몸이 고생해요..

메서드 설명 리턴값
append(값) 입력한 값 추가 없음
insert(인덱스,값) 입력한 인덱스 위치에 값 삽입 없음
remove(값) 입력한 값 삭제(입력한 값이 여러개면 맨 처음것 삭제) 없음
pop(인덱스) 입력한 인덱스 위치의 값을 삭제 (인덱스를 지정 안하면 맨마지막 값 삭제) 삭제된 값
sort() 리스트 정렬 없음
reverse() 리스트을 순서를 역순으로 뒤집는다(주의!역정렬은 아니고 단순히 뒤집기) 없음
index(값) 입력한 값의 인덱스값을 알려준다. 인덱스값(정수형)
count(값) 입력한 값의 갯수를 알려준다. 갯수(정수형)

 

위의 메서드 중 결과값이 있는 메서드는 print()의 매개변수에 lstChar.XXX()를 직접 넣어 바로 출력을 했고, 결과가 없는 메서드는 실행후 lstChar을 다시 출력 했습니다. 결과값이 없는 메서드를 print()의 매개변수에 넣으면 작업은 실행되지만 'None' 즉 결과가 없다고 출력하기때문에, 실행된 내용을 확인 하려면 실행 후 리스트를 따로 출력해 확인 합니다. 

lstChar=['C','D','E','F','G','C']

lstChar.append('10')
print(lstChar)

lstChar.insert(3,'20')
print(lstChar)

lstChar.remove('F')
print(lstChar)
print("======")

print(lstChar.pop())
print(lstChar)
print("======")

lstChar.sort()
print(lstChar)

lstChar.reverse()
print(lstChar)
print("======")

print(lstChar.index('C'))
print(lstChar.count('C'))

 

3.리스트 관련함수

문자열을 설명할 때 정리한 나열형 관련 함수를 함께 쓸 수 있습니다.(참고 https://jsitclub.tistory.com/27)

 

Tip

대부분 메서드들은 결과로 주거나 작업을 하는 한가지 기능인데, pop()메서드는 지우는 작업과 지워진 항목을 결과로 알려주는 두가지 기능을 합니다.

Tip

역정렬을 하려면 sort()를 한후 reverse()를 해도 되지만 리스트.sort(reverse=True)를 사용해도 됩니다.

Tip

프로그래밍 언어를 공부할때 변수나 리스트 등 자료를 담는 형태가 나오면 , 값을 사용(값가져오기), 추가, 수정, 삭제 하는 방법 네가지를 꼭 확인하는 습관을 갖도록 하세요.

리스트의 예를 들면,

lstChar=['C','D','E','F','G','C']

#값사용
if lstChar[3]=="C":
    print("hello")
    
#값추가
lstChar.append("Z")

#값수정
lstChar[0]="A"

#값삭제
lstChar.remove("E")

 

4.튜플

 

 

리스트는 ()(소괄호)로 묶여 있는 형태을 갖습니다. 리스트과 같이 다양한 자료형으로 만들수 있습니다.

튜플은 리스트의 내용과 거의 같다고 보시면 됩니다. 연산방법도 같고, 인덱싱이나 슬라이싱도 같습니다.

단, 튜플은 추가, 삭제, 수정을 할 수 없습니다.때문에 메서드도 공통으로 사용되는 index()와 count() 만 있습니다.

문자열과 리스트를 열심히 하셨다면 튜플은 특별히 따로 공부는 필요없습니다.

Comments