취준일기

[TIL_알고리즘] 파이썬의 자료구조 리스트

둉영 2020. 11. 6. 12:07

리스트는 data를 순서대로 저장하는 자료구조 여러 데이터가 일직선으로 연결된 선형구조

하나의 변수의 여러개의 값을 저장할 수 있음 

 

1차원배열 = 순차리스트

Mylist = [1,3,2,4,5]

원래는 변수 5를 만들어야하는데 Mylist라는 변수하나로 관리가능

 

메모리주소도 근처에 인접하여 저장

 

 

데이터 접근: 리스트 인덱싱

인덱스를 사용하여 순차리스트 관리

인덱스 넘버링은 뒤에서 부터 부를 수도 있음 -> 음수부호(-) 사용

Mylist[0] =1 #인덱스는 0부터 시작

Mylist[-5]=1 #뒤에서 부터 호출시 -1부터 시작

 

이차원배열 : 행x열

다수의 데이터 집합에 대한 작업

리스트의 리스트 

apt=[None]*3 # 아무것도 담기지않은 공간 세개짜리 리스트를 만들겠다

 

fa=[0]*3 

print(fa) #[0, 0, 0]

 

apt[0]=[1,2,3] #0번 인덱스 리스트에 리스트 추가

apt[1]=[4,5,6] #1번 인덱스 리스트에 리스트 추가

apt[2]=[7,8,9] #2번 인덱스 리스트에 리스트 추가

 

행/열   0 1 2

0

1

 

1행의 2열 값 가져오기

print(apt[1][2]) #6

 

반복문사용하여 이차원 배열 만들기

 

for i in range(3): #행우선(행고정)

    for j in range(3):

        print(apt[i][j]) 

 

for j in range(3): #열우선(열고정)

    for i in range(3):

        print(apt[i][j]) #apt[i][j]=float(input()) 값을 입력받고 싶다면 input() 함수 사용

 

 

#3*3 배열에 무작위로 값을 저장하여 각 행단위의 합계를 출력하시오.

 

import random

col=3 #열

row=3 #행

apt=[[0]*row for i in range(col)] #1. 3*3 행렬 생성

 

for i in range(row): 

  for j in range(col):

      apt[i][j]=random.randint(1,100#2. 난수로 채워주기 

 

print(apt) #[[33, 13, 8], [72, 69, 46], [72, 68, 48]]

 

#3. 합계 계산(행기준)

sum=[0]*3

for i in range(row):

  for j in range(col):

    sum[i]+=apt[i][j]

print(sum)

 

# [54, 187, 188]

 

# 4. 출력

for i in range(row):

  for j in range(col):

    print("%d" % apt[i][j], end=" ")

  print(sum[i])

 

# 33 13 8 54

# 72 69 46 187

# 72 68 48 188

 

#3*3 배열에 무작위로 값을 저장하여 각 열단위의 합계를 출력하시오.

#1~2번과정 일치

apt = [[85411], [6688], [778658]]

#3. 합계 계산(열기준)

sum=[0]*3

for j in range(col):

  for i in range(row):

    sum[j]+=apt[i][j]

print(sum) #[168, 96, 157]