TIL - 03/25 - Python - 1

Sung Jun Jin·2020년 3월 25일
0

TIL

목록 보기
3/25

Adding And Changing Elements To List

추가하고자 하는 element가 한개 이상일때는 append 대신에 + 를 사용할 수 있다.

color_list = color_list + ["Light Blue", "Pink"]

추가하고자 하는 element를 list형태로 만든 후 추가해준다.

주의해야할 점은, +를 사용하여 더한 list를 저장하고자 하는 변수에 지정해줘야 한다.
ex)

list1 = [1,2,3,4]
list2 = [4,5,6]

list1 = list1 + list2
list3 = list1 + list2

print(list1) # 출력 : [1,2,3,4,5,6] 

print(list3) # 출력 : [1,2,3,4,5,6]

List에 + 연산을 사용하면 기존의 list와 다른 새로운 list가 생성되므로 새롭게 생성된 배열을 담아줄 변수가 필요하다.

'+' 연산을 통해 새롭게 생성된 배열을 담아주지 않으면 생기는 일

list1 = [1,2,3,4]
list2 = [4,5,6]

list1 + list2

print(list1) # 출력 : [1,2,3,4]

.insert는 원하는 위치에 element를 list에 삽입 할 수 있다.

.insert(삽입하고자 하는 위치(index), 추가하고자 하는 element)

    cities = [
        '서울특별시',
        '부산광역시',
        '인천광역시',
        '대구광역시',
        '대전광역시'
    ]
    
    cities.insert(1,'경기도 성남시')
    print(cities) 
    
    # 출력 : ['서울특별시', '경기도 성남시', '부산광역시', '인천광역시', '대구광역시', '대전광역시']

List Slicing

List Slicing이란 list의 일부분은 따로 copy 하는 기능이다.

list_name[start,stop,step]

start는 slice할 list의 첫번째 인덱스 번호
stop은 slice할 리스트가 멈추는 인덱스 번호 (미포함)
step 한번에 건너 뛸 요소 (optional, default 값은 1)

ex)

list = ['RM','제이홉','진','정국','지민','뷔','슈가']


sub_list = list[1:4]

print(sub_list) # 출력 : ['제이홉','진','정국']


sub_list_step = list[2,6,2]
print(sub_list_step) # 출력 : ['진','지민']

Deleting Elements From List

del, .remove를 사용해 리스트의 요소를 삭제할 수 있다.

del은 인덱스를 사용해서 list의 요소를 지우는 키워드이다. 해당 요소를 지운 후 list는 다시 재정렬된다.

twice = [ "나연",  "사나",  "정연",  "모모",  "미나", "채영",  "다현", "쯔위",  "지효"]

del twice[3] # 3번째 인덱스의 요소는 "모모"

print(twice) 
# 출력 : ["나연", "사나", "정연", "미나", 채영", "다현", "쯔위",  "지효"]

.remove는 요소의 값을 이용해 삭제하는 메소드이다.

twice = [ "나연",  "사나",  "정연",  "모모",  "미나", "채영",  "다현", "쯔위",  "지효"]

twice.remove("모모")

print(twice)
# 출력 : ["나연", "사나", "정연", "미나", 채영", "다현", "쯔위",  "지효"]

Tuples

Tuple이 List와 다른점은 수정이 불가능하다는 것이다. 따라서 수정을 할 수 있는 list보다 차지하는 메모리의 공간이 작으며, 간단한 데이터를 보관하는데 list보다 더 효과적이라고 할 수 있다.

my_tuple = (1,2,3,4,5,6) # tuple은 소괄호 ()를 사용한다. 

Set

set을 생성하는 2가지 방법이다.

# 방법 1
set = {1,2,3}

# 방법 2
set = set([1,2,3])

List와 비슷하지만 구별되는 2가지 특징이 있다.

  • 무작위 순서
  • 중복되는 요소가 없다

무작위 순서이므로 당연히 for문을 돌려서 요소를 하나하나 꺼냈을 때 무작위 순서로 나온다.

중복되는 요소가 없으므로 만약 중복되는 요소가 set에 추가될때 새로운 요소가 이전 요소를 치환(replace) 한다.

set1 = {1,2,3,4,1}
print(set1) # 출력 : {1,2,3,4}

set2 = set([1,2,3,4,5,2])
print(set2) # 출력 : {1,2,3,4,5}

Set에 요소를 추가할 때는 .add 메소드를 사용한다.

my_set = {1,2,3}
my_set.add(4)

print(my_set) # 출력 : {1,2,3,4}

Set에 요소를 지울 때는 .remove 메소드를 사용한다.

my_set = {1,2,3}
my_set.remove(3)

print(my_set) # 출력 : {1,2}

Set에 어떠한 값이 이미 포함되어 있는지 알아볼때는 in, not in 키워드를 사용한다.

my_set = {1,2,3}

if 1 in my_set :
    print("1 is in the set")
    
# 출력 : 1 is in the set    

if 4 not in my_set :
    print("4 is not in the set")
    
# 출력 : 4 is not in the set    

Set을 이용해 교집합 (Intersection)과 합집합 (Union)을 구할 수 있다.

  1. 교집합은 & 키워드 혹은 intersection 함수를 사용하면 된다.
set1 = {1, 2, 3, 4, 5, 6}
set2 = {4, 5, 6, 7, 8, 9}

print(set1 & set2) # 출력 : {4,5,6}

print(set1.intersection(set2)) # 출력 : {4,5,6}
  1. 합집합은 | 키워드 혹인 union 함수를 사용하면 된다.
print(set1 | set2) # 출력 : {{1, 2, 3, 4, 5, 6, 7, 8, 9}
print(set1.union(set2)) # 출력 : {{1, 2, 3, 4, 5, 6, 7, 8, 9}

Dictionary

Dictionary는 key와 value로 구성되어 있다.

my_dict = {key1 : value1, key2 : value2}

bts_rm = { "실명" : "김남준", "가명" : "RM" }

Dictionary에서 새로운 요소를 추가할때

bts_rm["태어난 연도"] = 1991

print(bts_rm) # 출력 : {'실명': '김남준', '가명': 'RM', '태어난 연도': 1991}

주의
값이 동일한 key가 존재하면 새로 추가되는 요소가 그 전의 요소를 치환한다.

dict = {1 : "one", 2 : "two", 3 : "three"}

dict[1] = "new_one"

print(dict) # 출력 : {1 : "new_one", 2 : "two", 3 : "three}

Dictionary에서 기존의 요소를 삭제할때

del 키워드를 사용한다, key 값을 사용해준다

my_dict = { "one": 1, 2: "two", 3 : "three" }

del my_dict("one")

print(my_dict) # 출력 : {2 : "two", 3 : "three}

Looping Dictionary With Both Keys And Values

Dictionary의 key값만 반복 출력하기

bts_rm = {"실명" : "김남준", "가명" : "RM", "태어난 년도" : 1991}

for each_key in bts_rm :
  print(f"key값 : {each_key}")
  
'''
출력 

key값 : 실명
key값 : 가명
key값 : 태어난 년도
'''

Dictionary의 value값만 반복 출력하기
.values() 함수를 사용해준다.

bts_rm = {"실명" : "김남준", "가명" : "RM", "태어난 년도" : 1991}

for each_values in bts_rm.values() :
  print(f"Value : {each_values}")
  
'''
출력

Value : 김남준
Value : RM
Value : 1991
'''

Dictionary의 key와 value값을 둘 다 출력하기

.items() 함수를 사용해주면 되는데, .itmes() 함수는 dictionary의 key와 value를 tuple로 return 해준다.

bts_rm = {"실명" : "김남준", "가명" : "RM", "태어난 년도" : 1991}

for each_key, each_value in bts_rm.items() : 
  print(f"{each_key} 는/은 {each_value}입니다.")

While

while 구문은 특정 조건문이 True일 경우에 코드블록을 반복 실행한다.

while 조건 :
   # 실행할 코드 블록
   

파이썬의 while문은 else문이 추가될 수 있다.

while 조건 :
  # 실행할 코드 블록
else : 
  # while문이 종료된 후 실행할 문장

ex)

number = 0

while number <= 10 :
  print(number)
  number = number + 1
else :
  print(f"while문이 끝나고 난 후의 number : {number}")
  

'''
출력 : 
0
1
2
3
4
5
6
7
8
9
10
while 문이 끝나고 난 후 의 number : 11

'''




profile
주니어 개발쟈🤦‍♂️

0개의 댓글