dan3 = []
for i in range(1, 10):
dan3.append(i * 3)
print(dan3)
>>> [3, 6, 9, 12, 15, 18, 21, 24, 27]
# list에 append 메소드를 사용하여 구구단 3단을 만든다.
dan3 = [i * 3 for i in range(1, 10)]
print(dan3)
>>> [3, 6, 9, 12, 15, 18, 21, 24, 27]
# list를 정의할 때 내부에 for문을 사용하여도 같은 결과가 나타난다.
dan3 = list(map(lamda x: x * 3, range(10))
# map 함수를 사용하여도 같은 결과를 나타낼 수 있다.
# map(func, list) 는 list의 각 원소들을 func 에 넣은 값을 list로 반환해준다.
----------------------
print([(x, y) for x in range(1, 10) for y in [x*3]])
>>> [(1, 3), (2, 6), (3, 9), (4, 12), (5, 15), (6, 18), (7, 21), (8, 24), (9, 27)]
# for문을 굳이 두번 쓸 필요가 없지만, 이처럼 for문을 두개 같이 적용하여 쓸 수도 있다.
# 이 것은 아래의 코드와 같다.
dan3 = []
for x in range(1, 10):
for y in [x*3]:
dan3.append((x, y))
print(dan3)
----------------------
matrix = [
[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11, 12]
]
# list 구조를 2중으로 넣으면 matrix를 표현할 수 있다.
colset = [row[i] for row in matrix for i in range(4)]
print(colset)
>>> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
# 'for row in matrix' 안에 'for i in range(4)'가 들어가 각 row의 원소들을 colset에 추가한다.
colset = [[row[i] for row in matrix] for i in range(4)]
print(colset)
>>> [[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]]
# 대괄호가 추가됨으로써, 'for i in range(4)' 안에 'for row in matrix'가 들어가
# 각 matrix row의 같은 column 값들을 하나의 list로 묶는다.
-- for문 적용이 바뀌는 추가 예제--
gugudan = [[x*y for x in range(1, 3)] for y in range(1, 10)]
print(gugudan)
>>> [[1, 2], [2, 4], [3, 6], [4, 8], [5, 10], [6, 12], [7, 14], [8, 16], [9, 18]]
# for문 두개에 괄호가 생김으로써 뒤에서부터 for문이 적용됨
# 이는 아래의 코드와 같다.
gugudan.clear()
# gugudan 리스트 를 초기화.
for y in range(1, 10):
dan = []
for x in range(1, 3):
dan.append(x*y)
gugudan.append(dan)
print(gugudan)
>>> [[1, 2], [2, 4], [3, 6], [4, 8], [5, 10], [6, 12], [7, 14], [8, 16], [9, 18]]
! 주의
해당 내용은 개인 정리를 위하여 작성한 내용으로, 틀린 내용이 존재할 수 있습니다.
잘못된 정보의 경우 댓글로 알려주시면 감사하겠습니다.
'컴퓨터 > Python' 카테고리의 다른 글
#10 : Python의 모듈 (0) | 2020.01.13 |
---|---|
#09 : Python의 기타 데이터 형태 (0) | 2019.12.30 |
#07 : Python의 함수 (0) | 2019.12.24 |
#06 : Python의 반복문 (0) | 2019.12.24 |
#05 : Python의 조건문 (0) | 2019.12.23 |