[TIL] python_list, tuple 심화

정세비·2021년 5월 24일
0

python

목록 보기
10/10
post-thumbnail

1. 리스트에 요소 추가 / 삭제

코드내용
list.append( )요소 하나 추가
list.extend( )리스트를 연결하여 확장
list.insert( )특정 인덱스에 요소 추가
list.pop( )마지막 요소 또는 특정 인덱스 요소 삭제
list.remove( )특정 값 삭제
list.index( )값의 인덱스 구하기. 여러개일 경우 쳣번째 값
list.count( )특정 값 개수 구하기
list.reverse( )리스트 순서 뒤집기
ist.sort( )리스트 오름차순 정렬(작은 순서->큰 순서)
list.sort(reverse=True)내림차순 정렬
list.clear( )리스트 모든 요소 삭제 -> 빈 리스트가 됨 (==del a[:])
list[ : ]슬라이스 활용하여 여러개 값 추가

1) list.append( ) : 요소 하나 추가

>>> a = [1, 2, 3]
>>> a.append(5)
>>> a
[10, 20, 30, 5]
>>> len(a)
4

>>> a = []                // 빈 리스트에 요소 추가
>>> a.append(1)
>>> a
[1]

>>> a = [1, 2, 3]         // 리스트 안에 리스트 추가
>>> a.append([100, 200])
>>> a
[1, 2, 3, [100, 200]]
>>> len(a)
4

2) list.extend( ) : 리스트 확장

>>> a = [10, 20, 30]
>>> a.extend([500, 600])
>>> a
[10, 20, 30, 500, 600]
>>> len(a)
5

3) list.insert(인덱스, 요소) : 특정 인덱스에 요소 추가

>>> a = [10, 20, 30]
>>> a.insert(2, 500)
>>> a
[10, 20, 500, 30]    // 2자리에 500 추가
>>> len(a)
4

>>> a = [10, 20, 30]
>>> a.insert(1, [500, 600])
>>> a
[10, [500, 600], 20, 30]
  • insert(0, 요소) : 맨 처음 요소 추가
  • insert(len(리스트), 요소) : 맨 끝에 요소 추가 == append(요소)

4) 슬라이스 활용 (리스트 중간에 요소 여러개 추가)

>>> a = [10, 20, 30]
>>> a[1:1] = [500, 600]     // [1:1]은 아무것도 덮어씌우지 않으면서 요소 여러개 추가 가능
>>> a
[10, 500, 600, 20, 30]

5) list.pop( ) : 마지막 인덱스 or 특정 인덱스 요소 삭제 (== del [인덱스])

>>> a = [10, 20, 30]
>>> a.pop()                // 마지막 인덱스 삭제
30
>>> a
[10, 20]

>>> a = [10, 20, 30]
>>> a.pop(1)                // 인덱스 1 삭제
20
>>> a
[10, 30]

6) list.remove( ) : 특정 값 삭제

>>> a = [10, 20, 30, 20]
>>> a.remove(20)
>>> a
[10, 30, 20]            // 값이 여러개인 경우 첫번째 값 삭제

2. 리스트 할당 list.copy( )

a = [1, 2, 3]
b = a              // 리스트 a와 b 가 같음
a is b
True

a = [1, 2, 3]
b = a.copy()
a is b
False           // 다른 두 객체의 리스트
a == b
True           // 요소는 동일하므로

3. 반복문으로 리스트 요소 출력

1 - 1) for 반복문으로 요소 출력 for i in [list] :

>>> a = [1, 2, 3]
>>> for i in a:           
	print(i)
1
2
3

또는 for i in [1, 2, 3]

1 - 2) 인덱스와 요소 함께 출력 for 인덱스, 요소 in enumerate(list) :

>>> a = [1, 2, 3, 4]
>>> for index, value in enumerate(a):
	print(index, value)
0 1
1 2
2 3
3 4

>>> for index, value in enumerate(a, 2): //start=숫자 를 지정함으로써 인덱스 숫자 변경 가능
	print(index, value)
2 1
3 2
4 3
5 4

2 ) while 반복문으로 요소 출력

>>> a = [1, 2, 3, 4, 5]
>>> i = 0
>>> while i < len(a):
	print(a[i])
	i += 1
1
2
3
4
5

✔ 참고 : 리스트 a 의 모든 요소 출력하는 방법

for i in range(len(a)):
    print(a[i])

i = 0
while i < len(a):
    print(a[i])
    i += 1


for i in a:
    print(i)

4. 리스트의 가장 작은 수, 큰 수, 합계 구하기

1) 가장 작은 수 / 큰 수 구하기

  • min / max 이용하기
  • sort 이용하기
  • smallest / largest 이용하기
//min / max>>> a = [38, 21, 53, 62, 19]
>>> min(a)       //  min [ ] 가 아니라 ( ) 임을 주의
19
>>> max(a)
62

// ★ sort( ) 이용 ★
>>> a = [38, 21, 53, 62, 19]
>>> a.sort()
>>> a[0]
19
>>> a.sort(reverse=True)
>>> a[0]
62

// smallest / largest 이용 (for, if문 활용)
>>> a = [38, 21, 53, 62, 19]
>>> smallest = a[0]
>>> for i in a:
...     if i < smallest:
...         smallest = i
...
>>> smallest
19

>>> a = [38, 21, 53, 62, 19]
>>> largest = a[0]
>>> for i in a:
...     if i > largest:
...         largest = i
...
>>> largest
62

2) 합계 구하기

  • sum( ) 이용하기
  • for문 이용하기
>>> a = [10, 10, 10, 10, 10]
>>> sum(a)
50

>>> a = [10, 10, 10, 10, 10]
>>> x = 0
>>> for i in a:
...     x += i
...
>>> x
50

5. list comprehension(표현식)

  • 식으로 지정해서 생성된 것을 리스트로 잡아두는 것.
  • 리스트 안에 반복문/조건문 등을 사용

1) for 반복문 사용

 a = [i for i in range(5)]

 a = list(i for i in range(5))           [0, 1, 2, 3, 4]

-> range안에 숫자를 꺼내서 i 로 리스트  생성

>>> a = [i + 2 for i in range(5)]
>>> a
[2, 3, 4, 5, 6]

2) if 조건문 사용

 a = [i for i in range(5) if i % 2 == 0]              [0. 2. 4]

 a = list(i for i in range(5)  if i % 2 == 0)          [0, 2, 4]

>>> a = [i + 2 for i in range(5) if i % 2 == 0]
>>> a
[2, 4, 6]

3) for 반복문과 if 조건문 여러번 사용

[식 for 변수1 in 리스트1 if 조건식1 for 변수2 in 리스트2 if 조건식2 ... for 변수n in 리스트n if 조건식n]

list(식 for 변수1 in 리스트1 if 조건식1 for 변수2 in 리스트2 if 조건식2 .. . for 변수n in 리스트n if 조건식n)

>>> a = [i * j for j in range(2, 10) for i in range(1, 10)]
>>> a
[2, 4, 6, 8, 10, 12, 14, 16, 18, 3, 6, 9, 12, 15, 18, 21, 24, 27, 
4, 8, 12, 16, 20, 24, 28, 32, 36, 5, 10, 15, 20, 25, 30, 35, 40, 45, 
6, 12, 18, 24, 30, 36, 42, 48, 54, 7, 14, 21, 28, 35, 42, 49, 56, 63, 
8, 16, 24, 32, 40, 48, 56, 64, 72, 9, 18, 27, 36, 45, 54, 63, 72, 81]

또는

a = [i * j for j in range(2, 10)
           for i in range(1, 10)]

6. 리스트에 map 사용

list(map(함수, 리스트))
tuple(map(함수, 튜플))

>>> a = [1.2, 2.5, 3.7, 4.6]
>>> a = list(map(int, a))
>>> a
[1, 2, 3, 4]

1) input().split()

a = input().split()

10 20 30

a

['10', '20', '30']

으로 문자열 출력. 이를 다시 정수로 변환할 땐

a = map(int, input().split())

10 20 30

list(a)                list를 붙여줘야 함.

[10, 20, 30]

<튜플>

  • 튜플은 list와 달리 내용변경이 불가능하므로 추가/삭제 등은 사용할 수 없으며
    정보를 구하는 메서드만 사용 가능

1. 특정 값의 인덱스 구하기 / 개수 구하기(count)

>>> a = (38, 21, 53, 62, 19, 53)
>>> a.index(53)
2

>>> a = (10, 20, 30, 15, 20, 40)
>>> a.count(20)
2

2. for 반복문으로 요소 출력

>>> a = (38, 21, 53, 62, 19)
>>> for i in a:
...     print(i, end=' ')
...
38 21 53 62 19

3. 튜플 표현식 사용 ( 리스트와 동일)

>>> a = tuple(i for i in range(10) if i % 2 == 0)
>>> a
(0, 2, 4, 6, 8)

4. map 사용 ( 리스트와 동일)

>>> a = (1.2, 2.5, 3.7, 4.6)
>>> a = tuple(map(int, a))
>>> a
(1, 2, 3, 4)

5. 가장 작은 수/ 큰 수 / 합계 ( 리스트와 동일)

>>> a = (38, 21, 53, 62, 19)
>>> min(a)
19
>>> max(a)
62
>>> sum(a)
193
profile
파주

0개의 댓글