본문 바로가기
수업(국비지원)/Python

[Python] 컬렉션 - list(리스트)

by byeolsub 2023. 4. 24.
'''
2022-11-24 복습
  print(값) : 화면에 출력하기
  print(값1, 값2) : 값을 여러개 출력
  print("{0:d}{1:2d}...".format(값1, 값2,...)) 형식문자 이용하여 출력
  print("%2d,%3d" % (값1, 값2)) : 형식문자 이용하여 값을 여러개 출력
  print(f"{변수1}{변수2}") : 변수에 해당하는 값을 출력
  print(""" 문자열 """) : 여러줄 문자열
  
문자열 : 문자들의 모임. 인덱스(첨자)를 사용가능
  "문자열"[시작인덱스:종료인덱스+1:증감값]
    시작인덱스 생략시 : 0번부터 시작
    종료인덱스 생략시 : 마지막 문자까지
    증감값 생략시 : 1씩 증가
조건문 : if else, if elif else, True if 조건식 else False
반복문 : for 변수 in 범위, while 조건식
          범위 : range(초기값,종료값+1,증감식) 
          break,continue
조건문, 반복문 : 들여쓰기 주의
문자열 함수
      len(문자열) : 문자열의 길이
      문자열.count(문자) : 문자열에서 문자의 갯수 리턴
      문자열.find(문자) : 문자열에서 문자의 위치 리턴. 문자가 없는 경우 -1 리턴
      문자열.index(문자) : 문자열에서 문자의 위치 리턴. 문자가 없는 경우 오류 발생
      문자열.isdigit() : 숫자?
      문자열.idalpha() : 문자?
      문자열.isalnum() : 숫자또는 문자?
      문자열.isupper() : 대문자?
      문자열.islower() : 소문자?
      문자열.isspace() : 공백?       
'''

 

📌

# -*- coding: utf-8 -*-
"""
Created on Fri Nov 25 09:26:31 2022

@author: KITCOOP
2022-11-25.py
"""
#####################
# Collection : 여러개의 데이터 저장할 수 있는 객체
#   list(리스트) : 배열의 형태. 인덱스를 사용가능. []로 표시함.
#   tuple(튜플) : 상수화된 리스트. 변경불가리스트. ()로 표시함.
#   set(셋) :  중복 불가. 집합의 의미로 사용. {}로 표시함.
#   dictionary(딕셔너리) : 자바의 Map. (key,value)쌍인 객체들. {}로 표시함.
#####################

#리스트
a = [0,0,0,0]
b = []
print(a,len(a))  # len(a) : 리스트 요소의 갯수
print(b,len(b))

#a 리스트의 길이 만큼 숫자를 입력받아, a에 저장하고, 입력받은 수의 전체 합계를 출력하기
hap = 0
for i in range(len(a)) : # i : 0 ~ 3
    a[i] = int(input(str(i+1)+'번째 숫자 입력: '))
    hap += a[i]
print(a,"요소의 합:",hap)    

print(a,"요소의 합:",sum(a))  #sum(리스트) : 리스트 요소의 합

#a 리스트의 길이 만큼 숫자를 입력받아, b에 저장하고, 입력받은 수의 전체 합계를 출력하기
for i in range(len(a)) : # i : 0 ~ 3
    # b 리스트 요소는 없으므로 0번 인덱스에 해당하는 b[0]은 없다.
    b[i] = int(input(str(i+1)+'번째 숫자 입력: '))
print(b,"요소의 합:",sum(b))     ## 오류 발생. IndexError: list assignment index out of range 

#b.append : b 리스트에 요소를 추가
for i in range(len(a)) : # i : 0 ~ 3
    b.append(int(input(str(i+1)+'번째 숫자 입력: ')))
print(b,"요소의 합:",sum(b))
# %s : 문자열 표현의 형식 문자. list값도 %s로 사용 가능.
print("b=%s" % b)

### 리스트의 주요 함수  ###
a.append(1) # a 리스트에 1 요소를 마지막에 추가
a

#a 리스트 정렬
a.sort()
a

#a 리스트의 마지막 요소를 출력
a[4]  # a 리스트의 4번 인덱스.
a[len(a)-1]  # a 리스트의 마지막 인덱스.
a[-1]  # -1 인덱스 = 마지막 인덱스. 뒤에서 첫번째 인덱스
a[2]  # 뒤에서 두번째 인덱스

a.pop() # 마지막 요소를 제거하여 출력. 
a  # 결과 -> [1, 100, 200, 300]

a.reverse() # 요소의 순서를 역순으로 
a  # 결과 -> [300, 200, 100, 1]

# index(값) 함수 : 요소의 위치(인덱스) 리턴
a.index(100)  # 결과 -> 2
a.index(400) # 값이 없어서 발생하는 오류. ValueError: 400 is not in list
a.find(400) # 오류. find 함수는 리스트에 없는 함수. AttributeError: 'list' object has no attribute 'find' 

# insert(인덱스, 값) : 리스트 중간에 요소를 추가
a
a.insert(1,222) 
a  # 결과 -> [300, 222, 200, 100, 1]

#remove(값) : 해당 요소를 제거
a.remove(222)
a  # 결과 -> [300, 200, 100, 1]
b

# a 리스트에 b 리스트 추가
a.extend(b)
a  # 결과 -> [300, 200, 100, 1, 100, 200, 300, 40, 10, 20, 30, 40]

# 10 요소의 갯수 출력하기
a.count(10)  # 결과 -> 1

# 문자열을 분리하여 리스트로 저장하기
dd = "2022/11/25"
c = dd.split("/")
print(c)

 

 

# 문제 : ss 문자열의 모든 숫자들의 합을 출력하기
ss = "10,20,50,60,30,40,50,60,30"
##1
sslist = ss.split(",")
print(sslist)
sum(sslist) # sslist 요소가 숫자가 아니고 문자열이므로 sum 함수 사용 불가
hap = 0
for n in sslist :
    hap += int(n) # n의 값을 정수형으로 형변환
print(sslist,"의 요소의 합:",hap) # 결과 -> ['10', '20', '50', '60', '30', '40', '50', '60', '30'] 의 요소의 합: 350

##2

 

'수업(국비지원) > Python' 카테고리의 다른 글

[Python] 컬렉션 - tuple  (0) 2023.04.24
[Python] 컬렉션 - dictionary  (0) 2023.04.24
[Python] 문자열 함수  (0) 2023.04.24
[Python] 중첩 반복문(별 찍기)  (0) 2023.04.24
[Python] 조건문, 반복문  (0) 2023.04.24