본문 바로가기

Code/Phyton

[Phyton] List / Aliasing vs Slicing / List of lists

LIST

 

 

 

리스트는  서로 다른 타입이면서도 복수의 값들을 '읽고 쓸수' 있는 Python의 내장 데이터 타입이다.

>>>whales = [1,2,3,4,5,6,7,8,9,10,11,12,13,14]

 

 

whale 이란 변수는 14개의 값을 저장한, list 를 포함한다. 

 

 

  • whales refers to a list with 14 elements

  • [] is an empty list: a list with no elements

  • A list is an object, but it also contains the memory addresses of other objects

 

 

 

>>>whales[0]

1

 

>>>whales[-1]

6

 

>>>another = whales[0]

>>>another

1

 

 

 

  • Lists can contain integers, strings, and even other lists.

 

 

>>> krypton = ['krypton','kr',-152.7,-153]

>>> krypton[1]

'kr'

 

 

Lists are mutable

 

  • Lists are mutable (can be mutated)

  • Strings are immutable

 

 

>>>number_list=[2,4,5,8.10]

>>>number_list[2]=6

>>>number_list

[2,4,6,8,10]

 

[] 문법의 원래 정의는 [start:end:step]으로서, 숫자를 [n]처럼 하나만 주면 해당 n의 위치를 나타내고,
숫자를 두개 주면 [start:end]으로서 start에서 end-1번째 아이템을 추출한다는 의미이다.
숫자를 세개 구는 경우는 [start:end:step]로서 start부터 end-1까지 아이템을 추출하되, step개씩 건너띄면서 추출하겠다는 것이다.
즉, course[0:4:2]으로 하면 0번째 아이템에서 4번째 아이템 중에서, 0/2 번째 아이템을 추출하는 것을 의미한다.

 


 

sorted!!! 많이 쓰는 함수이다.

 

a=[2,4,1,7,3]

 

>>>sorted(a)

[1,2,3,4,7]

>>>a

[2,4,1,7,3]

 

>>>b=[3]

>>>a+b

[2,4,1,7,3,3]

 

>>>metals=['Fe','N1']

>>>metals*3

['Fe','N1','Fe','N1','Fe','N1']

 

>>>del metals[0]  //0 번쨰 element 삭제

>>>metals

['N1']

 

>>>1 in [0,1,2,3]   // list에 1 element 가 있는가

true

 

>>>[1] in [0,1,2,3] //list에 1 list가 있는가

false

 


리스트 복사 및 별칭 이해하기

slicing list

 

vs

 

aliasing : 동작을 수행하는 환경에 맞는 이름을 변경하고 싶을 떄

 

y : aliasing

z : copying

 

예시

course = [ "Python", "Javascript", "C++", "__reserved__" ]

courseAliasing = course # Alising
courseCopy = course[:] # Copy whole elements

print("[Before]")
print("course: ", course)
print("courseAliasing: ",courseAliasing)
print("courseCopy: ", courseCopy)

courseAliasing[3] = "CSS3"
courseCopy[3] = "HTML5"

print("[After]")
print("course: ", course)
print("courseAliasing: ",courseAliasing)
print("courseCopy: ", courseCopy)

 

>>>

[Before]

course: ['Python', 'Javascript', 'C++', '__reserved__']

courseAliasing: ['Python', 'Javascript', 'C++', '__reserved__']

courseCopy: ['Python', 'Javascript', 'C++', '__reserved__']

[After]

course: ['Python', 'Javascript', 'C++', 'CSS3']

courseAliasing: ['Python', 'Javascript', 'C++', 'CSS3']

courseCopy: ['Python', 'Javascript', 'C++', 'HTML5']

>>>

 

별도의 return 구문이 없어도 지워져있다. 이미 값은 바껴있다.

 

 

List methods

  • List is a type

  • List is a class

  • List has methods.


중첩된 리스트 (List of Lists) 이해하기

 

 

student1 = [["Python", 76.5], ["C++", 97], ["Javascript", 99]]

print(student1)
print(student1[1])

student1[1][1] = 98

print(student1[1])
print(student1)

 

>>>

[['Python', 76.5], ['C++', 97], ['Javascript', 99]]

['C++', 97]

['C++', 98]

[['Python', 76.5], ['C++', 98], ['Javascript', 99]]

 


해당 자료는 경희대학교 소프트웨어융합학과 이성원교수님 수업내용을 참조하였습니다.