데이터분석

# 중급 03. List형 데이터 다루기

책다니엘 2024. 3. 23. 22:54

1. List데이터는 대괄호로 생성한다.

runningMan = ['유재석', '김종국', '하하', '전소민', '이광수','송지효','양세찬', '지석진','강개리']
for runner in runningMan:
    print(f'런닝맨의 멤버는: {runner}')

 

2. 어떤 변수를 기존의 List데이터로 선언하면, 변수에 List가 그대로 복사되는 것이 아니라, 같은 데이터를 참조한다. 이를 '얕은 복사'라고 한다.

a = runningMan
print(a)
# ['유재석', '김종국', '하하', '전소민', '이광수', '송지효', '양세찬', '지석진', '강개리']

a[1] = 'Gym종국'
print(a)
# ['유재석', 'Gym종국', '하하', '전소민', '이광수', '송지효', '양세찬', '지석진', '강개리']

print(runningMan)
# ['유재석', 'Gym종국', '하하', '전소민', '이광수', '송지효', '양세찬', '지석진', '강개리']

* a = runningMan으로 List를 선언하였지만, a의 값을 바꿔주니 원래의 runningMan 배열의 값도 변경되었다.

 

3. 배열 자체를 복사하여 선언해주려면, python의 경우 .copy()를 사용해준다. 이를 '깊은 복사'라고 한다.

b = runningMan.copy()
print(b)

b[2] = 'Haha'
print(b) # ['유재석', 'Gym종국', 'Haha', '전소민', '이광수', '송지효', '양세찬', '지석진', '강개리']
print(runningMan) # ['유재석', 'Gym종국', '하하', '전소민', '이광수', '송지효', '양세찬', '지석진', '강개리']

 

4. 파이썬은 다른 언어에 비해 List형을 다른 반복문(for)에서 사용하기 편하다. 또한 in 명령으로 조건문(if)에 적용하는 것도 다른 언어에 비해 편리하다.

for runner in runningMan:
    print(runner)

if '김종국' in runningMan:
    print(True)

 

5. append(value): list 뒤에 하나를 추가해주는 함수이다.

runningMan.append('주우재')
print(runningMan)

 

6. pop(arr): list 맨 뒤에 있는 자료를 지우는 함수이다.

runningMan.pop()
print(runningMan)

 

7. extend(arr or [values]): 배열 뒤에 다수의 자료를 추가하는 함수이다.

infiniteChallenge = ['유재석','박명수', '하하', '정준하', '정형돈', '양세형', '노홍철', '길']
runningMan.extend(infiniteChallenge)
print(runningMan)

 

8. remove(value): () 안에 있는 값과 같은 값을 지우는 함수이다.

runningMan.remove('길')
print(runningMan)

 

9. 슬라이싱[n:m]: 배열의 n+1번째 값부터 m+1번째 값까지 잘라내어 보여주는 함수이다. n이 공란일 경우에는 왼쪽 끝까지 모두, m이 공백일 경우에는 오른쪽 끝까지 모두 표시한다.

print(runningMan[2:5])
# ['하하', '전소민', '이광수']

 

10. .insert(index, value): index+1번째 자리에 value를 넣어 주는 함수이다.

runningMan.insert(1,'강호동')
print(runningMan)

 

11. list 안에 list를 가질 수 있다.

infiniteChallenge = ['유재석','박명수', '하하', '정준하', '정형돈', '양세형', '노홍철', '길']

runningMan.insert(1, infiniteChallenge)

print(runningMan)

# ['유재석', ['유재석', '박명수', '하하', '정준하', '정형돈', '양세형', '노홍철', '길'], '김종국', '하하', '전소민', '이광수', '송지효', '양세찬', '지석진', '강개리']

 

12. isinstance(value, typeofvalue): 특정 값이 어떤 타입인지 알 수 있게 해준다.(boolean타입으로 반환)

for runner in runningMan:
    print(isinstance(runner, list))

# False
# True
# False
# False
# False
# False
# False
# False
# False
# False