Notice
Recent Posts
Recent Comments
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
10-10 22:21
Archives
Today
Total
관리 메뉴

Developer_Neo

[python] 리스트 만들기, 연산자, 함수, 메소드 본문

프로그래밍/Python

[python] 리스트 만들기, 연산자, 함수, 메소드

_Neo_ 2022. 1. 16. 14:09
반응형

리스트 만들기

리스트 객체 = list( iterable 자료형 )

 

iterable 자료형

  1. 컨테이너 자료형 - 문자열, 튜플, 집합, 사전
  2. 내장함수 - range(), reversed(), enumerate(), filter(), map(), zip()

리스트는 mutable객체

연산자

  1. +
  2. *
  3. in, not in
  4. del
''' + '''
>>> L = [1, 3, 5, 7]; M = [2, 4, 6, 8] 
>>> L + M 
[1, 3, 5, 7, 2, 4, 6, 8] 
>>> L, M 
([1, 3, 5, 7], [2, 4, 6, 8]) 
>>> K = L + M 
>>> K 
[1, 3, 5, 7, 2, 4, 6, 8]



''' * '''
>>> M = [7, 9] 
>>> M *= 3 
>>> M 
[7, 9, 7, 9, 7, 9]


''' in , not in '''
>>> L = [2, 4, 6, 8, 10] 
>>> 6 in L 
True 
>>> 11 not in L
True


''' del '''
>>> a=[1,2,3,4]
>>> del a[2]
>>> a
[1, 2, 4]
>>> del a
>>> a
'''
Traceback (most recent call last):
  File "<pyshell#63>", line 1, in <module>
    a
NameError: name 'a' is not defined
'''

 

함수

len(), max(), min(), sum(), sorted(), reversed()

len(L) 리스트 L의 원소의 개수 반환
max(L) 리스트 L의 원소 중 가장 큰 수 반환
min(L) 리스트 L의 원소 중 가장 작은 수 반환
sum(L) 리스트 L의 원소의 합을 반환
sorted(L) 리스트 L을 오름차순으로 정렬한 새리스트를 만들어 반환   L은  안바뀜
reversed(L) 리스트 L를 역순으로 바꾸어준다 reverse객체라서 다른 함수를 적용해야 눈으로 볼 수 있음

메소드

>>> dir(list)
['__add__', '__class__', '__class_getitem__', '__contains__', '__delattr__', '__delitem__', 
'__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', 
'__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__init_subclass__', '__iter__', 
'__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', 
'__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__', 
'__subclasshook__', 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 
'remove', 'reverse', 'sort']

append(), extend(), insert(), sort(), remove(), pop(), clear(), copy()

''' append(x) '''
'''
인수 x에는 어떤 자료형도 넣을 수 있지만 반환값은 없음
'''
>>> L = [6, 8, 2, 4] 
>>> x = L.append(5) 
>>> print(L) 
[6, 8, 2, 4, 5] 
>>> print(x) 
None
>>> L = [6, 8, 2, 9] 
>>> x = L.append(7) 
>>> print(L) 
[6, 8, 2, 9, 7] 
>>> print(x) 
None


''' extend() '''
''' 리스트와 iterable 자료형 연결 '''
>>> L = [1,3,5] 
>>> L.extend('python') # 문자열은 문자 하나하나가 원소
>>> L 
[1, 3, 5, 'p', 'y', 't', 'h', 'o', 'n'] 
>>> L = [1,3,5] 
>>> L.extend([7,9]) #리스트
>>> L 
[1, 3, 5, 7, 9] 
>>> L = [1,3,5] 
>>> L.extend((7,9)) #튜플
>>> L 
[1, 3, 5, 7, 9] 
>>> L = [1,3,5] 
>>> L.extend({2, 8}) #집합
>>> L 
[1, 3, 5, 8, 2]
>>> L = [1,3,5] 
>>> L.extend({'one':1, 'two':2, 'three':3})
>>> L 
[1, 3, 5, 'one', 'two', 'three']
>>> L = [1,3,5] 
>>> L.extend(range(7, 10, 2)) 
>>> L 
[1, 3, 5, 7, 9]
>>> L = [1,3,5] 
>>> L.extend(reversed(L)) 
>>> L 
[1, 3, 5, 5, 3, 1]


''' insert(i,x) '''
''' 인덱스 i에 데이터 x를 삽입하는 메소드 '''
>>> L = ['a', 'b', 'c', 'd'] 
>>> L.insert(2, 'e') 
>>> print(L) 
['a', 'b', 'e', 'c', 'd']
>>> M = [1,3,5,7] 
>>> M.insert(2, [2,4,6]) # 리스트 insert 하기
>>> M 
[1, 3, [2, 4, 6], 5, 7] 


''' sort() ''' 
'''
sort의 인수로 key=~~ 가 들어갈 수 있다 들어갔다면
key에 해당하는 함수의 결과값에 따라 오름차순정렬한다
'''
>>> a = [4, 10, -5, 0, -8, 1, -9] 
>>> a.sort( ) 
>>> a 
[-9, -8, -5, 0, 1, 4, 10] 
>>> a.sort(key=abs,reverse=True)
>>> a
[10, -9, -8, -5, 4, 1, 0]



''' remove(x) '''
''' 
인수에 삭제하고자 하는 데이터를 넣어야한다 
반환값은 없다.
만약 삭제하고자하는 것이 여러개가 있으면 맨 앞에 부터 삭제한다.
없는 원소를 삭제하면 ValueError가 발생한다.
'''
>>> a=['a', 'b', 'c', 'd', 'e', 'a']
>>> result=a.remove('e')
>>> print(result)
None
>>> a
['a', 'b', 'c', 'd', 'a']
>>> a.remove('a')
>>> a
['b', 'c', 'd', 'a']



''' pop() '''
'''
pop() -> 마지막 데이터를 삭제 후 반환
pop(i) -> 인덱스 i에있는 데이터 삭제 후 반환
삭제한 데이터 반환
'''
>>> a=['a','b','c','d','e']
>>> p=a.pop()
>>> print(p)
e
>>> a
['a', 'b', 'c', 'd']
>>> a.pop(3)
'd'
>>> a
['a', 'b', 'c']
# 빈 리스트나 없는 인덱스에 대해 pop을 진행하면 IndexError가 나타남

''' clear() ''' 
''' 모든 데이터 삭제헤 빈리스트로 만들기 '''
>>> L = [1, 3, 5, 7, 9] 
>>> L.clear( ) 
>>> L 
[ ] 


''' copy() '''
>>> L = [1,3,5,7,9] 
>>> M = L.copy( ) 
>>> id(L), id(M) # 다른 id 
(35516048, 35334864) 
>>> print(L) 
[1, 3, 5, 7, 9] 
>>> print(M) 
[1, 3, 5, 7, 9]
반응형
Comments