2018년 5월 9일 수요일

[python] 문법08

#
# 1)
# 리스트
#

a = [1, 2, 3]
print(a)
print(a[0], a[1], a[2])
a[0]=3
print(a)

----------------
#
# 2)
# range 함수: 리스트 생성
#

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


#
#2-1 참고
#

for i in range(3):
    print(i,end=" ")
print()

for i in range(1,3):
    print(i,end=" ")
print()

for i in range(1,5,2):
    print(i,end=" ")
print()

for i in (5, 2, 4):
    print(i,end=" ")
print()

for i in (5, "hello", 4):
    print(i,end=" ")
print()

----------------
#
# 3)
# 행렬 (3행X2열)
#

c=[ [1,2], [3,4], [5,6] ]

----------------
#
# 4)
# 리스트 항목 반복문 이용 출력
#
a=[1,2,3]
print(a)
print(a[0], a[1], a[2])

for i in range(3):
    print(a[i], end=" ")
print()

#
# 리스트 항목의 갯수 알아내기
#
print(len(a))

#
# 반복문 이용하여 출력
#
for i in range(len(a)):
    print(a[i], end=" ")
print()

----------------
#
# 5)
# ( ) 와 [ ]의 차이점
#

a=(1,2,3)
b=[1,2,3]

# 다음과 같이 값을 넣을 수 없다. 수정할 수 없다.
# a[0]=100

# 값을 넣을 수 있다. 수정할 수 있다. (할당가능)
a = [1,2,3]
a[0]=100
print(a)
print()

----------------
#
# 6)
# 리스트에서 해당 값을 가진 위치(0부터 카운팅) 찾아내기
#

a = [1,2,3]

key=2
idx = a.index(key)
print(idx, a[idx])
print()

----------------
#
# 7)
# 리스트 "객체"에서 사용할 수 있는 함수들
#

print(a)
value = a.pop()
print(value, a)

value = a.pop()
print(value, a)
print()

a.append(5)
a.append(3)
a.append(2)
print(a)

a.insert(0, 1)
print(a)
 
a.sort()
print(a)
b = sorted(a) #새로운 b 생성
print(b)

a.clear()
print(a)

----------------
#
# 8)
# 별명과 복사의 차이
#

a=[1, 2]
b=a
print(a)
print(b)
print(id(a))
print(id(b))
b[0] = 10
print(a)
print(b)

a=[1, 2]
b=a.copy()
print(a)
print(b)
print(id(a))
print(id(b))
b[0] = 10
print(a)
print(b)

----------------
#
# 9)
# 딕셔너리
#

book = {
"홍길동" : "010-1234-5678",
"이순신" : "010-4235-3847",
"강감찬" : "010-9876-1234" }

print(book)
print(book["이순신"])

book["이순신"] = "010-999-9999"
print(book["이순신"])

del(book["이순신"])
print(book)

book.clear()
print(book)

print(book.keys())
print(book.values())

if "이신순" in book.keys():
    print("이순신이 있어요")

for key in book.keys():
   print(key)

#
# 9-2)
# 딕셔너리를 이용한 전화번호부 관리 프로그램 작성: 입력, 수정, 삭제, 검색
#

#
# 메뉴처리 코드 예시
#
def a():
    print("A")

def b():
    print("B")

while(True):
   print()
   print("----------")
   print("[1] a")
   print("[2] b")
   print("[3] c")
   print("[0] quit")
   print("----------")
   print("select menu: ", end='')
   n = int(input())
 
   if n==1:
       a()
   elif n==2:
       b()
   elif n==0:
       break
   else:
       print("invalid number")
     
print("program terminated") 


----------------
#
# 10)
# 기타
#

#
# 리스트의 내용을 다른 리스트에 복사하기
#
a=['1','2','3','4'] # 리스트
b = a.copy() # 복사 copy 함수 사용 가능

#
#
#
a=('1','2','3','4') # 튜플이라고 별도로 지칭; 값을 바꿀 수 없다.
b = a.copy() # 값을 복사할 수도 없다.

# 문자 리스트와 문자열: 비슷하지만 다르다. (다른 점은 C언어에서 설명된다)
a=('1','2','3','4')
a="1234"

#
# 이런 경우는 값을 하나씩 할당해야 한다.
#

# None
# 정해지지 않은 숫자를 의미한다
b = [None] * len(a)
print(b)

for i in range(len(a)):
    b[i] = a[i]

print(b)

#
# 파이선은 다음과 같은 방법으로 더욱 편리하게 할당 가능
#

b=[a[i] for i in range(len(a))]
print(b)

#
# 다차원행렬
#
a = [[1,2,3],[3,4,5]]    #2차원 행(row)렬(column)
print(a)
print(a[0])
print(a[0][0])

#
# 더욱 유용한 다차원 리스트; 다차원 배열
#
# pip install numpy

import numpy as np
a=[1,2,3]
b = np.array(a)
print(b)

a = [[1,2],[3,4],[5,6]]
b = np.array(a)

b = np.array([[1,2],[3,4],[5,6]])

print(b.shape)
rows = b.shape[0]
cols = b.shape[1]
print(rows, cols)
--------------------------------------------------------------------------------
last modified: 2018/5/14

댓글 없음:

댓글 쓰기