0424 자료구조 2일차(~19)

박영선·2023년 4월 24일
0

리스트 연결

리스트연결(확장) : extend() 함수를 사용
+를 사용해서 합칠 수 도 있음
extend를 사용하면 함수가 확장되는 개념
+를 사용하면 새로운 리스트가 생기는 개념

myFavoriteNumber = [1,3,5,6,7]
friendFavoriteNumber = [2,3,5,8,10]
print(myFavoriteNumber)
print(friendFavoriteNumber)

addList = myFavoriteNumber + friendFavoriteNumber
print(addList)

result = []
for number in addList:
    if number not in result:
        result.append((number)) #result에 없는, 즉 중복되지 않는 데이터만 추가됨.

print('result: {}'.format(result))

리스트 아이템 정렬

아이템 정렬하기 : sort()함수 사용하면 정렬할 수 있다.
sort()오름차순 / sort(reverse=True) 내림차순

playerScores = [9.5,8.9,9.2,9.8,8.8,9.0]
print(playerScores)

playerScores.sort()
print(playerScores)

playerScores.pop()
playerScores.pop(len(playerScores)-1)

print(playerScores)

sum = 0; avg = 0

for score in playerScores:
    sum += score

avg = sum/len(playerScores)

print('총점 : {}, 평균 : {}'.format(int(sum),round(avg,2)))

리스트 순서 뒤집기

리스트 순서 뒤집기 : reverse() 함수 사용

#암호해독

secret = '27156231'
secretList = []
solvedList = ''

for cha in secret:
    secretList.append(int(cha))  #정수로 하나씩 나눠서 리스트에 담기
secretList.reverse()
print('secretList :{}'.format(secretList))

val = secretList[0] * secretList[1]
secretList.insert(2,val)

val = secretList[3] * secretList[4]
secretList.insert(5,val)

val = secretList[6] * secretList[7]
secretList.insert(8,val)

val = secretList[9] * secretList[10]
secretList.insert(11,val)

print('secretList :{}'.format(secretList))

리스트 슬라이싱

리스트 슬라이싱 : 원하는 아이템만 뽑아내기. [n:m]을 이용한다.(n이상 m미만)
ex)2:4 라면 2,3번째 아이템
n,m 지정 안하면 처음부터나 끝까지
음수 지정하면 뒤에서부터

문자열도 슬라이싱 가능

[n:m:r] 로 하면 r은 슬라이싱 단계를 지정

슬라이싱을 통해 아이템 변경 가능

리스트 나머지 기능들

리스트 곱셈연산

아이템 위치 찾기

import random

sampleList = random.sample(range(1,11),10) #1~10까지 10개 뽑기

selectIdx = int(input('숫자 7의 위치 입력: '))
searchIdx = sampleList.index(7)

if searchIdx == selectIdx:
    print('빙고!')

else:
    print('틀렸습니다. 다시 입력하세요.')

print('sampleList :{}'.format(sampleList))
print('searchIdx :{}'.format(searchIdx))

특정 아이템 개수 알아내기 : count() 사용

특정 아이템 삭제 : del 사용


import random

types = ['A', 'B', 'O', 'AB']
todayData = []
typeCnt = []

for i in range(100):
    type = types[random.randrange(len(types))] #type범위 내 랜덤 뽑기
    todayData.append(type)

print('todayData : {}'.format(todayData))
print('todayData length : {}'.format(len(todayData)))

for type in types:
    print('{}형 : {}개'.format(type, todayData.count(type)))
profile
데이터분석 공부 시작했습니다

0개의 댓글