빅데이터 프로그래밍/Python

[Python] 05. 시퀀스 자료형 리스트의 실습, 리스트 선언, 리스트 연결, 리스트 크기, 멤버 체크, 문자열 포맷팅, Tuple, Dictionary의 선언

밍글링글링 2017. 8. 2.
728x90

01. 리스트(List), 튜플(Tuple)

- 자료를 나열하여 목록으로 처리

- 리스트(List)는 원본 값을 변경 할 수 있으나 튜플(tuple)은 값을 변경할 수 없으며 사용법이 비슷함.
- 사전(Dictionary)은 키와 값의 구조를 제공(JAVA: Map)

- 문자열의 시작 인덱스는 0부터 시작하며 - 인덱스는 문자열의 끝부터 -1을 시작으로 지정함.

- [시작 인덱스: 마지막 인덱스]: 시작 index부터 마지막 index-1 부분까지 문자열 추출 
- [: 마지막 인덱스]: 처음부터 마지막 index-1 부분까지 문자열 추출 
- [시작 인덱스:] : 시작 index부터 마지막까지 문자열 추출
- [::2]: step을 2로해서 슬라이싱. 

 

1. list 실습

[출력 화면]

 index의 사용
--------------------------------------
cat
bat
rat
elephant
elephant
Hello cat
['cat', 'bat']
[10, 20, 30, 40, 50]
bat
50
 
 슬라이스의 이용
--------------------------------------
['cat', 'bat', 'rat', 'elephant']
['bat', 'rat']
['cat', 'bat', 'rat', 'elephant']
['cat', 'bat']
['bat', 'rat', 'elephant']
['cat', 'bat', 'rat', 'elephant']
4
['cat', '고양이', 'rat', 'elephant']
[1, 2, 3, 'A', 'B', 'C']
[1, 2, 3, 1, 2, 3, 1, 2, 3]
--------------------------------------
['봄', '여름', '가을']
여름
가을
계절 1: 봄
계절 2: 여름
계절 3: 가을
True
False
--------------------------------------
봄: 봄
여름: 여름
가을: 가을
--------------------------------------
2
['봄', '여름', '가을', '크리스마스']
['함박눈', '봄', '여름', '가을', '크리스마스']
['함박눈', '봄', '가을', '크리스마스']
['가을', '봄', '크리스마스', '함박눈']
['함박눈', '크리스마스', '봄', '가을']
['A', 'Z', 'a', 'z']
['A', 'a', 'Z', 'z']
▶list1.py
# -*- coding: utf-8 -*-
print('\n index의 사용')
print("--------------------------------------")
spam = ['cat', 'bat', 'rat', 'elephant'] # list
print(spam[0])
print(spam[1])
print(spam[2])
print(spam[3])
print(spam[-1])

print('Hello ' + spam[0])

spam = [['cat', 'bat'], [10, 20, 30, 40, 50]]
print(spam[0])
print(spam[1])
print(spam[0][1])  # bat
print(spam[1][4])  # 50

print("\n 슬라이스의 이용")
print("--------------------------------------")

spam = ['cat', 'bat', 'rat', 'elephant'] # list
print(spam[0:4])
print(spam[1:3])
print(spam)
print(spam[:2])  # ['cat', 'bat']
print(spam[1:])
print(spam[:])
print(len(spam))

spam[1] = '고양이'
print(spam)

spam = [1,2,3] + ['A', 'B', 'C']
print(spam)

spam = [1,2,3] * 3;
print(spam)
print("--------------------------------------")

season=['봄', '여름', '가을', '겨울']
del season[3]
print(season)

for item in season:
    print(item)

# range(5): 0, 1, 2, 4
for index in range(len(season)):
    print('계절 ' + str(index + 1) + ': ' + season[index])

print('봄' in season)
print('겨울' in season)
print("--------------------------------------")

flower, sea, maple = season # 변수의 갯수와 list의 요소는 일치해야함.
print('봄: ' + flower)
print('여름: ' + sea)
print('가을: ' + maple)
print("--------------------------------------")

print(season.index('가을')) # list index
    
season.append('크리스마스') # 마지막에 추가
print(season)

season.insert(0, '함박눈')  # 지정된 index에 추가
print(season)

season.remove('여름')  # 삭제
print(season)

season.sort()  # ascending
print(season)

season.sort(reverse=True)  # decending
print(season)

season=['a', 'z', 'A', 'Z'] # ASCII 기준 정렬
season.sort()
print(season)

season.sort(key=str.lower)
print(season) # ['A', 'a', 'Z', 'z'] 알파벳 문자 순서에의한 정렬
-------------------------------------------------------------------------------------
 

 

2. tuple 실습

[출력 화면]

('hello', 42, 0.5)
(42, 0.5)
3
<class 'str'>
<class 'str'>
<class 'tuple'>
('봄', '여름', '가을', '겨울')
['봄', '여름', '가을', '겨울']
['h', 'e', 'l', 'l', 'o']
('h', 'e', 'l', 'l', 'o')
▶tuple1.py
# -*- coding: utf-8 -*-
eggs = ('hello', 42, 0.5)
print(eggs)
print(eggs[1:3])
print(len(eggs))

print(type('hello')) # <class 'str'>
print(type(('hello'))) # <class 'str'>
print(type(('hello',))) # <class 'tuple'>

season = ['봄', '여름', '가을', '겨울'] # list
season2 = tuple(season) # list -> tuple
print(season2)  

season3 = list(season2) # tuple -> list
print(season3)

season3 = list('hello')  # str -> list
print(season3)

season3 = tuple('hello')  # str -> tuple
print(season3)

-------------------------------------------------------------------------------------

 

 

 

3. list, tuple 실습

[출력 화면]

[6, 2, 3, 4, 5]
------------------------------------------
1
[1, 2, 3]
3
------------------------------------------
[1, 2, 3, 4, 5, 6]
------------------------------------------
5
13
------------------------------------------
False
True
------------------------------------------
(1, 2, 3, 4, 5)
------------------------------------------
1
{'a': 1, 'd': 4, 'c': 3, 'b': 2}
{'a': 1, 'd': 4, 'c': 3, 'b': 7}
4
▶sequence1.py
# -*- coding: utf-8 -*-

# 리스트 선언
list1 = [1, 2, 3, 4, 5]
list2 = ['a', 'b', 'c']
list3 = [1, 'a', 'abc', [1, 2, 3, 4, 5], ['a', 'b', 'c']]
list1[0] = 6
print(list1)      # [6, 2, 3, 4, 5]가 출력됨
print("------------------------------------------")

# 리스트 인덱싱
listdata = [1, 2, [1, 2, 3]]
print(listdata[0])     # 1이 출력됨
print(listdata[-1])    # [1, 2, 3]이 출력됨
print(listdata[2][-1])  # [1,2,3]중에서 끝에서 -1번째 3이 출력됨
print("------------------------------------------")

# 리스트 연결
listdata1 = [1, 2, 3]; listdata2 = [4, 5, 6]
print(listdata1 + listdata2)    # [1, 2, 3, 4, 5, 6]이 출력됨
print("------------------------------------------")

# 리스트 크기
strdata1 = 'I love python'
strdata2 = '나는 파이썬을 사랑합니다'
listdata = ['a', 'b', 'c', strdata1, strdata2]
print(len(listdata))     # 5가 출력됨
print(len(listdata[3]))  # 13이 출력됨
print("------------------------------------------")

# 멤버 체크
listdata =[1, 2, 3, 4]
ret1 = 5 in listdata    # False
ret2 = 4 in listdata    # True
print(ret1); print(ret2)
print("------------------------------------------")

# 튜플 선언
tuple1 = (1, 2, 3, 4, 5)
tuple2 = ('a', 'b', 'c')
tuple3 = (1, 'a', 'abc', [1, 2, 3, 4, 5], ['a', 'b', 'c'])
# tuple1[0] = 6

print(tuple1)
print("------------------------------------------")

# 사전 선언
dict1 = {'a':1, 'b':2, 'c':3}
print(dict1['a'])     # 1이 출력됨
dict1['d'] = 4
print(dict1)        # {‘a’:1, ‘b’:2’, ‘c’:3, ‘d’:4}가 출력되나 순서가 틀릴 수 있음
dict1['b'] = 7
print(dict1)        # {‘a’:1, ‘b’:7’, ‘c’:3, ‘d’:4}가 출력되나 순서가 틀릴 수 있음
print(len(dict1))    # 4가 출력됨
 

728x90

댓글