ex)
multi_line_string = """this is line number 1
this is line number 2
this is line number 3
this is line number 4"""
출력:
his is line number 1
this is line number 2
this is line number 3
this is line number 4
True and False -> False
True or False -> True
not True -> False
3==2 -> False
3!=2 -> True
/ >=
- a > b : a가 b보다 크면(초과) True, 그렇지 않으면 False를 출력함.
- a >= b : a가 b보다 크거나 같으면(이상) True, 그렇지 않으면 False를 출력함.
```
1 > 1 -> False
```
```
1 >= 1 -> True
```
```
8 & 10 -> 8
```
8이 출력되는 이유. 8과 10을 이진수로 바꾸면 알 수 있다.
```
0000 1000(8)
& 0000 1010(10)
-----------
0000 1000
```
따라서, 최종적으로 1000이 출력되며, 이를 다시 10진수로 바꾼 8이 출력된다.
```
8 | 10 -> 10
```
```
0000 1000(8)
| 0000 1010(10)
-----------
0000 1010
```
따라서, 1010을 출력이 되며, 이를 다시 10진수로 바꾸면 10이 되므로 최종적으로 10을 한다.
파이썬에서 리스트(list)란 원소들이 연속적으로 저장되는 형태의 자료형
- 서로다른 데이터 타입을 가질수있다
```
a = ['apple', 1, 23.2, True]
```
b = [[1,2,3],['apple','banana']]
리스트 추가
- append: 리스트의 끝에 데이터를 추가한다
- insert(i, x): i(index) 위치에 데이터를 추가한다
- extend: 리스트의 끝에 배열을 추가한다
list = ['apple', 'melon', 'kiwi']
list.append('grape')
print(list)
# print: ['apple', 'melon', 'kiwi', 'grape']
list = ['apple', 'melon', 'kiwi']
list.insert(0, 'grape')
print(list)
# print: ['grape', 'apple', 'melon', 'kiwi']
list = ['apple', 'melon']
list2 = ['grape', 'kiwi']
list.extend(list2)
print(list)
# print: ['apple', 'melon', 'grape', 'kiwi']
remove(x): 리스트에서 값이 x와 같은 첫 번째 항목을 삭제한다.
pop([i]): i(index)를 지정하면 index 위치에 있는 데이터를 삭제한다.
> index를 지정하지 않으면 리스트의 맨 마지막 데이터를 삭제한다.
>
list = ['apple', 'apple', 'grape', 'kiwi']
list.remove('apple')
print(list)
# print: ['apple', 'grape', 'kiwi']
list = ['apple', 'melon', 'grape', 'kiwi']
list.pop()
print(list)
# print: ['apple', 'melon', 'grape']
list.pop(0)
print(list)
# print: ['melon', 'grape']
list = ['apple', 'melon', 'grape', 'kiwi']
list.clear()
print(list)
# print: []
튜플 선언
t1 = ()
t2 = (1,)
t3 = (1, 2, 3)
t5 = ('a', 'b', ('ab', 'cd'))
대부분의 언어에서 대응 관계를 나타내는 자료형을 갖고 있는데, 이를 연관 배열(Associative array) 또는 해시(Hash)라고 한다. 파이썬에서는 이러한 자료형을 Dictionary라고 한다. Dictionary는 Key와 Value를 한 쌍으로 갖는 자료형이다.
Dictionary는 List나 Tuple처럼 순차적으로(sequential) 해당 요솟값을 구하지 않는다. Key를 통해 Value를 얻는다. 이것이 바로 딕셔너리의 가장 큰 특징이다. baseball이라는 단어의 뜻을 찾기 위해 사전의 내용을 순차적으로 모두 검색하는 것이 아니라 baseball이라는 단어가 있는 곳만 펼쳐 보는 것이다.
- 중괄호 { }나 dict( )함수를 통해 표현
- Key : value 형식으로 저장하며 각 Key값은 콤마 (,)를 통해서 구분한다.
- Key가 중복 된다면 가장 뒤의 값만 사용된다.
```
dic = {'a':12,'b':13,'a':15}
dic['a'] = 15
a = { 'a': [1,2,3] } -> Value에 리스트도 넣을 수 있다.
```
a = {1: 'a'}
a[2] = 'b'
print(a)
#print: {1: 'a', 2: 'b'}
a[3] = [1,2,3]
print(a)
#print: {1: 'a', 2: 'b', 3: [1, 2, 3]}
del a[1]
print(a)
#print: {2: 'b', 3: [1, 2, 3]}
a = {'name': 'pey', 'phone': '0119993323', 'birth': '1118'}
a.keys()
dict_keys(['name', 'phone', 'birth'])
>>> for k in a.keys():
... print(k)
...
name
phone
birth
keys list 값으로 변환
list(a.keys())
['name', 'phone', 'birth']
>>> a.values()
dict_values(['pey', '0119993323', '1118'])
>>> a.items()
dict_items([('name', 'pey'), ('phone', '0119993323'), ('birth', '1118')])
집합(set)은 파이썬 2.3부터 지원하기 시작한 자료형으로, 집합에 관련된 것을 쉽게 처리하기 위해 만든 자료형이다.
- 집합 자료형은 다음과 같이 set 키워드를 사용해 만들 수 있다.
- 위와 같이 set()의 괄호 안에 리스트를 입력하여 만들거나 다음과 같이 문자열을 입력하여 만들 수도 있다.
s1 = set([1,2,3])
print(s1)
{1, 2, 3}
s2 = set("Hello")
print(s2)
{'e', 'H', 'l', 'o'}
위 예제를 보면 알 수 있다시피 print 할 때 문자열이 뒤죽박죽이고 ‘l’이 하나만 print 되어 있다. 이는 set의 아래와 같은 특징 때문이다.
- 중복을 허용하지 않는다.
- 순서가 없다.
리스트나 튜플은 순서가 있기 때문에 인덱싱이 가능하지만 set은 순서가 없기 때문에 인덱싱으로 값을 얻을 수 없다. 참고로 딕셔너리도 순서가 없기 때문에 인덱싱을 지원하지 않는다.
만약 인덱싱을 하고 싶다면 set을 리스트나 튜플로 변환해야 한다.
# 1. list 변환
s1 = set([1,2,3])
l1 = list(s1)
print(l1)
print: [1, 2, 3]
l1[0]
1
# 2. tuple 변환
t1 = tuple(s1)
t1
print: (1, 2, 3)
t1[0]
1
s1 = set([1, 2, 3, 4, 5, 6])
s2 = set([4, 5, 6, 7, 8, 9])
s1 & s2
{4,5,6}
s1.intersection(s2)
{4,5,6}
s1 | s2
{1, 2, 3, 4, 5, 6, 7, 8, 9}
s1.union(s2)
{1, 2, 3, 4, 5, 6, 7, 8, 9}
s1 - s2
{1,2,3}
s1.difference(s2)
{1,2,3}
이미 만들어진 set 자료형에 값을 추가할 수 있다. 1개의 값만 추가할 경우 아래와 같이 한다.
s1 = set([1,2,3,])
s1.add(4)
s1
{1,2,3,4}
여러 개의 값을 한꺼번에 추가(update)할 때는 다음과 같이 한다.
s1 = set([1,2,3])
s1.update([4,5,6])
s1
{1,2,3,4,5,6}
[출처: https://wikidocs.net/11]