# 위 코드는 아래처럼 표현이 가능하다.
mylist = [3, 2, 6, 7]
answer = [number**2 for number in mylist if number % 2 == 0]
'Programming languages > Python' 카테고리의 다른 글
슬라이싱, 인덱스 (0) | 2021.04.21 |
---|---|
시퀀스(Sequence) 자료형 (0) | 2021.04.17 |
# 위 코드는 아래처럼 표현이 가능하다.
mylist = [3, 2, 6, 7]
answer = [number**2 for number in mylist if number % 2 == 0]
슬라이싱, 인덱스 (0) | 2021.04.21 |
---|---|
시퀀스(Sequence) 자료형 (0) | 2021.04.17 |
* sequence 자료형(리스트, 튜플, 문자열)을 슬라이싱 하는 경우
- start, end, step은 양수/0/음수가 들어갈 수 있다.
- start: 슬라이싱을 시작할 위치
- end: 슬라이싱을 끝낼 위치
- step: 실행되는 보폭( defalut = +1 )
* start와 end의 위치에 대한 이해를 돕기 위한 그림
1) 양수를 넣는 경우
예)
# 띄어쓰기(공백)은 문자열 1칸으로 인식된다.
print('hello world'[6:11])
>>>world
2) 음수를 넣는 경우
※ step이 양수인 경우에는 위 그림과 같지만, step이 음수여서 인덱스의 뒤부터 긁어올 때에는 다르다.
아래 예제를 참조.
print('hello world'[-1: 11]) # step값은 1인 상태
>>>d
print('hello world'[11:-6:-1]) # step값은 -1인 상태
>>>dlrow
# [11:-6:-1]에서 world는 5개의 문자이기 때문에 end값이 -5라고 생각할 수 있지만,
# step이 음수이면, 'hello world' 인덱스의 가장 끝 위치인 [11]의 위치가 -1 이라고 생각(암기)해야 편하다.
for문과 if문 한 번에 ( list comprehension ) (0) | 2021.05.06 |
---|---|
시퀀스(Sequence) 자료형 (0) | 2021.04.17 |
파이썬에 입문하고 코딩 테스트, 알고리즘 문제를 접하게 됐는데, 리스트(list), 튜플(tuple), 딕셔너리(dictionary) 등
각각 어떻게 CRUD(생성, 읽기, 수정, 삭제) 해야 하는지 헷갈려서 글로 남기게 되었다.
* 추천 링크 - 인덱싱에 대한 자세한 내용 (kjh0816.tistory.com/23)
ps : 인덱스를 역순으로 가져올 때 주의점.
(본론)
1) Python에서 sequence 자료형이란?
- 순서를 가진 객체들의 집합.
2) Python에서 sequence 자료형에 속하는 것
- 문자열 ( String )
- 리스트 ( list )
- 튜플 ( tuple )
3) 가능한 연산
1) 인덱싱 ( Indexing )
- 순서가 존재하므로, index를 통해 index[0]부터 값을 불러올 수 있다.
※ 참고로, dictionary는 sequence가 아닌 { key : value, ...} 형태로 저장
되므로 index를 통해 값을 불러올 수 없다.
str1 = '가, 나'
print(str1[0], str1[1], str1[2], str1[3])
>>>
가, 나
# 공백(띄어쓰기)을 포함한 모든 문자는 하나의 index를 갖는다.
2) 슬라이싱 ( Slicing )
- 일부를 잘라내거나, 일부를 삭제할 수 있다.
university = ['고', '려', '대']
creature = ['생', '물']
# 1) 일부 잘라내기
ancient = university[0:1] + university[2:3]
print(ancient + creature)
>>>
['고', '대', '생', '물']
# 2) 일부 삭제하기
del university[1:2]
print(university+creature)
>>>
['고', '대', '생', '물']
3) "+"연산자로 연결 ( Concatenation )
- 같은 자료형끼리 "+" 연산자를 통해 합칠 수 있다.
str1 = 'Good'
str2 = 'Morning'
print(str1 + str2)
>>>
GoodMorning
# 아래처럼, tuple(또는 string) + list 등 같은 sequence 자료형이라도 합칠 수 없다.
list1 = [1, 2]
tuple1 = (3, 4)
print(list1+tuple1)
>>>
TypeError: can only concatenate list (not "tuple") to list
4) "*" 연산자로 반복 ( Repetition )
- 하나의 sequence 자료형 객체를 "*"를 통해 반복시킬 수 있다.
str1 = '간다'
print(str1*3)
>>>
간다간다간다
5) "in" 연산자로 값(value) 조회
- 특정한 값이 있는지 "in" 연산자를 통해 True/False 값을 얻을 수 있다.
computer = ['screen', 'keyboard']
print('screen' in computer)
>>>
True
print('cellphone' in computer)
>>>
False
# "in" 연산자와 조건문 사용
if 'mouse' not in computer :
computer.append('mouse')
print(computer)
>>>
['screen', 'keyboard', 'mouse']
for문과 if문 한 번에 ( list comprehension ) (0) | 2021.05.06 |
---|---|
슬라이싱, 인덱스 (0) | 2021.04.21 |