List in Python

류기탁·2021년 12월 3일
0

Python

목록 보기
1/9

파이썬으로 코테 풀 때 리스트를 많이 쓰는데, 기초로 쓰이는 메소드나 팁 들을 정리 했다.

List메소드

1. List에 원소 추가

  • append(값) : 값을 맨뒤에 입력
  • insert(인덱스, 값) : 특정 인덱스에 값을 입력
  • extend([리스트]) : 리스트를 뒤에 붙인다.
  • 플러스 기호를 사용해서 더할 수 도있다.
a = [0,1,2,3,4,5,6,7,8,9]
a.append(10)
a.insert(12,11)
a.extend([12,13,14])
a += [15,16,17]

2. List에서 원소 삭제

  • del(주소) : a[i] 의 위치의 요소를 삭제한다.
  • remove(값) : 특정한 값을 삭제한다. 같은 값일 경우 앞의 요소
  • pop() : 리스트의 맨 마지막요소를 돌려주고 , 삭제한다.
  • 그밖에, 람다식을 사용해서 삭제할 수 도 있다.
b = [1,1,4,2,3,4,5]
del b[2]
print("리스트 : " + str(b))
b = [1,1,4,2,3,4,5]
b.remove(4)
print(b)
# 리스트안의 특정한 요소를 모두 삭제하고 싶을 때는.
x = [1,2,3,2,2,2,3,4]
filter(lambda a: a!=2, x)
x.pop()
x.pop(3) #이렇게 사용도 가능하다. pop(z) z-1번째 요소(a[z])를 뺀다는 뜻이다. 출력하고 뺀다는 뜻이다.

3. reverse() : 뒤집기

x.reverse()

4. count() : 리스트 포함된 요소의 개수 세기

x.count(4)

5. index(값) : 위치반환

a = [7,8,9]
a.index(7)

6. sort,sorted : 정렬, 반환하진않는다.

  • sort()
a.sort(reverse=True) #내림차순
sorted(a) # 이런식으로 사용가능
  • key를 사용할 수도 있다. 정렬을 목적으로 하는 함수를 값으로 넣는다.
  • 또는 lambda를 넣어서 사용하기도 함.
b = ['judgment', 'compare','you','gryffin','car','thegarden']
print(sorted(['1','12','123','1234','12345'], key = len))
# 또는
print(sorted(b, key = lambda x : x[1]))
# 두번째 글자로 배열

# 여러 개로도 가능하다.
sorted(["abcd","sun","aun","gdull","eugd","quee","auee","quaa"], key = lambda x : (x[0],x[1]))
# 이런식으로 STR을 정렬하는것도 가능하다.
''.join(sorted("abcd", reverse=True))
print(sorted("fdjgkadklfl", reverse=True))

리스트와 자주, 함께 쓰이는 것들

split

  • split( seq = '', max split = -1) 문자열을 나누는 함수
  • seq : 문자열을 구분하는거
  • maxsplit : 분리할 문자개수를 지정할 때 사용됨
examplemal = '우리는 모두 괜찮습니다.'
print(examplemal)
examplemal.split(' ')
print(examplemal) 

for

  • 파이썬에서 for문은 범용성이 크다.
exlist = ['one', 'two', 'three']
for i in exlist:
    print(i)
  • for else 구문이 있다.
  • for이 중간에 break로 끊기지 않고, 끝까지 수행됐을 때 수행하는 코드이다.
  • 코테에서 어떠한 조건을 검사하면서 for문 돌릴 때 쓴다.
for i in range(11):
    if i == 4:
        print("빠져나갔다.")
        break
else :
    print("안빠져나가고 종료됨")
  • range()로 숫자리스트를 자동으로 만들 수 있다.
add = 0
for i in range(1,11):
    add = add + i
print(add)

리스트 슬라이스

예시 1 : a[0:4]

  • 인덱스 0 부터 3까지 잘라서 새리스트를 만드는 것.
  • -1 과 같이 음수를 인덱스로 지정할 수 있다.

예시 2 : a[4:-1]

  • -1 은 뒤에서 첫 번째 요소를 말한다.즉, 맨마지막요소이다.
  • -2 는 뒤에서 두 번째 요소를 말한다.

예시 3 : a[2:8:3]

  • 인덱스 2부터 3씩 증가시키면서 7까지 가져오겠다는 말이다.
    생략도 가능하다.

예시 4 : a[:7]

  • 리스트의 처음부터 인덱스 6까지 가져오겠다는 말이다.
  • 마지막은 역시 a[7:]

예시 5 : a[5:1:-1]

  • 인덱스 증가폭을 음수로 지정할 경우 인덱스 5부터 2까지 1씩 감소하면서 가져오겠다는 뜻이 된다.

예시 6 : range(0, 7, 2)

  • range에서도 사용이 가능하다.
  • 0 부터 2씩 증가시키면서 인덱스 6까지 숫자 4개를 생성하는 range객체를 만든다

zip

  • 두 그룹의 데이터를 엮어주는 파이썬의 내장함수 zip()
  • 순회가능한 객체를 인자로 받고,
  • 각 객체가 담고있는 원소를 차례로 반복하여 접근하는 반복자를 반환한다.
  • 주로 아래와 같이 for문에서 두 리스트를 같이 돌릴 때 쓰인다.
numbers = [1,2,3]
letters = ["A", "B", "C"]
for pair in zip(numbers, letters):
    print(pair)
for number, upper, lower in zip("12345", "ABCDE", "가나다라마"):
    print(number, upper, lower)

List 다루는 팁

1. 반복문으로 이중리스트 만들기

a = [[0 for j in range(2)] for i in range(3)]
# 00  2열 3행
# 00
# 00

2. 뒤에서부터 역순 출력

  • 리스트 슬라이스라고 한다. -1를 사용하자.
a = [1,2,3,4,5,6,7,8,9]
for i in a[::-1]:
    print(i)

3. 리스트와 문자열 변환하기

  • split() : STR형을 리스트로 바꿀 때
munjang = "Asgore attacked me with spear"
a = munjang.split()
print(a)
# 또는 한글자씩 바꿀 때
name = "Author"
a = list(name)
print(a)
  • .join(리스트) : 반대로, 리스트를 STR로 바꿀 때
new_name = ''.join(a)

4. 파이썬에서 리스트 안의 값을 바꿀 때

list_a = [3,5]
list_a[0], list_a[1] = list_a[1], list_a[0]
# 이렇게 바꿀수 있다.

5. 리스트 복사에 관해서 copy() 사용하기

# 리스트 복사시,
a = [1,2,3]
b = [4,5,6]
a = b
a.append(8)
# 이렇게하면, a 에 값을 넣는 건데도, b에도 들어간다.
# 복사가 아닌 참조가 되어서 변경을 하면 값이 변경된다.
# 그렇기 때문에, 1. copy()를 사용해야한다. 2. [:]를 사용해야한다.
copy = b[:]
copy2 = b.copy()

참고하면 좋은 사이트

https://wikidocs.net/14
https://wikidocs.net/16040

profile
오늘도 행복한 하루!

0개의 댓글