IFP 겨울방학 스터디(Unit 10)

유재우·2022년 1월 7일
0

리스트 만들기

  • 변수에 값을 저장 할 때 대괄호([ ])로 감싸주며 구분은 콤마( ,)로 한다.
  • 리스트에는 정수, 실수, 불값, 문자열 상관없이 같이 저장이 가능하다.
a = [1, 2.0, True, 'Hi']
  • 빈 리스트를 만들 때엔 대괄호를 비워주거나 list()를 이용하면 된다.
a = []
b = list()

range를 사용하여 리스트 만들기

  • range는 연속한 숫자를 생성한다.
range(10)

range(0, 10)


이런 식으로 사용하면 0~10까지가 아닌 0~9까지의 숫자를 생성한다.

  • 이 것을 리스트에 응용을 할수 있다.
a = list(range(4))
print(a)

[0, 1, 2, 3]


  • range에서 시작과 끝을 정해줄 수 있다.
a = list(range(3, 10))
print(a)

[3, 4, 5, 6, 7, 8, 9]


  • 증가폭 또한 정해줄 수 있다.
a = list(range(0, 10, 2))
b = list(range(4, 0, -1))
print(a)
print(b)

[0, 2, 4, 6, 8]
[4, 3, 2, 1]

튜플 사용하기

  • 튜플도 리스트와 비슷하지만 중 괄호로 감싸거나 아무것도 없이 콤마( ,)로만 구분해줘도 된다.
  • 리스트와는 다르게 수정, 추가, 삭제가 불가능하다.
  • 튜플도 리스트와 같이 여러 자료형을 섞어서 저장할 수 있다.
a = (1, 2, 3, True)
b = 4, 'hi', 6.7

(1, 2, 3, True)
(4, 'hi', 6.7)


  • 값이 한 개인 튜플을 만들고 싶으면 중 괄호 안에 값 한 개를 넣고 뒤에 콤마( ,)를 붙이거나 중 괄호 없이 값 뒤에 콤마( ,) 하나만 붙여도 된다.
a = (10, )
b = 'Hi',

(10,)
('Hi',)


  • 튜플도 리스트와 같이 range가 사용이 가능하다.
  • 리스트를 튜플로 변환하고 싶으면 tuple()을 사용하면 되고, 반대로 튜플을 리스트로 변환하고 싶으면 list()를 사용하면 된다.
a = [1, 2, 3]
b = (4, 5, 6)
print(tuple(a))
print(list(b))

(1, 2, 3)
[4, 5, 6]


  • list() ,tuple() 안에 문자열을 넣으면 문자 하나 하나 분해되어 저장된다.
print(list('hello'))
print(tuple('Hi'))

['h', 'e', 'l', 'l', 'o']
('H', 'i')


10.3 퀴즈

  • 다음 중 리스트를 만드는 방법으로 올바른 것을 모두 고르세요.
  1. a = []
  2. a = ()
  3. a = [10, 20, 30]
  4. a = list(range(10, 31, 10))
  5. a = 10, 20, 30
정답 : 1, 3, 4
풀이 : 리스트를 만드는 방법에는 값을 콤마로 구분한 뒤 []로 감싸기와 list()를 사용해서 만드는 방법이 있다.

  • 다음 중 튜플을 만드는 방법으로 올바른 것을 모두 고르세요.
  1. a = [10, 20, 30]
  2. a = 10, 20, 30, False, 'Hello'
  3. a = (False, 'Python')
  4. a = []
  5. a = tuple([10, 20, 30])
정답 : 2, 3, 5
풀이 : 튜플을 만들 때는 값을 콤마로 구분한 뒤 ()로 묶어주거나, 괄호를 생략한 뒤 변수에 할당한다. 또는, tuple()을 사용하면 된다.

  • 다음 중 튜플 (-10, -7, -4, -1, 2, 5, 8)을 만드는 방법으로 올바른 것을 고르세요.
  1. a = range(-10, 10, 3)
  2. a = list(range(-10, 10, 3))
  3. a = tuple(-10, 10, 3)
  4. a = tuple(range(-10, 10, 3))
  5. a = -10, 10, 3
정답 : 4
풀이 : 값 들이 3 차이로 증가하고 있고 -10부터 시작해서 8에서 끝나므로 range()를 사용해서 끝나는 값은 9~11이다. 이 값을 tuple() 사용하면 답처럼 값이 나온다.

10.4 연습문제: range로 리스트 만들기

  • 다음 소스 코드를 완성하여 리스트 [5, 3, 1, -1, -3, -5, -7, -9]가 출력되게 만드세요. 리스트를 만들 때는 range를 사용해야 합니다.
________range___________
print(a)
결과)
[5, 3, 1, -1, -3, -5, -7, -9]

정답 : a = list(range(5, -10, -2))
풀이 : range에서 시작값은 5이고 -2만큼 차이가 나고 마지막 값이 -9로 끝나므로 
range(5, -10, -2) or range(5, -11, -2)이고 이 값을 list()로 변환하고 변수 a에 저장하면 된다.

10.5 심사문제: range로 튜플 만들기

  • 표준 입력으로 정수가 입력됩니다. range의 시작하는 숫자는 -10, 끝나는 숫자는 10이며 입력된 정수만큼 증가하는 숫자가 들어가도록 튜플을 만들고, 해당 튜플을 출력하는 프로그램을 만드세요(input에서 안내 문자열은 출력하지 않아야 합니다).
입력) 2
결과) (-10, -8, -6, -4, -2, 0, 2, 4, 6, 8)
_________________________________________________
입력) 3
결과) (-10, -7, -4, -1, 2, 5, 8)
정답 : 
a = tuple(range(-10, 10, int(input())))
print(a)
풀이 : range에서 시작값은 -10이고 마지막 값이 8로 끝나고 증가 하는 숫자는 입력하므로
range(-10, 10, input())이지만 여기서 그대로 한다면 입력한 숫자가 문자열로 들어가 오류가 난다. 그러므로 range(-10, 10, int(input())) 이런 식으로 바꿔주고 이 값을 tuple에 넣고 출력하면 된다.```
profile
끝없이 탐구하는 iOS 개발자 유재우입니다!

0개의 댓글