Posts

Showing posts with the label list

파이썬에서 리스트/딕셔너리 복사

by joviansummer original STEEMIT post: https://steemit.com/blog/@joviansummer/cfchw 파이썬의 리스트(list)와 딕셔너리(dict)는 등호(=)를 이용해서 다른 변수에 할당할 경우 해당 자료가 복사되지 않고 동일한 데이터에 연결됩니다. 아래의 리스트 예시를 보겠습니다. x = [1, 2, 3] y = x 위와 같이 한 상태에서 y의 마지막 원소를 꺼내기 위해 pop()을 사용해 봅니다. y.pop() 이렇게 하면 x와 y가 동일한 데이터에 연결되어 있기 때문에 x를 출력해도 마지막 원소가 제거된 것을 볼 수 있습니다. print(x) [1, 2] 데이터를 복사하여 별도의 리스트를 만들고 싶다면 아래와 같이 copy() 함수를 이용해야 합니다. y = x.copy() 이렇게 하면 y에서 pop()을 사용해도 x에 저장된 데이터에는 변화가 없습니다. 딕셔너리도 마찬가지입니다. 데이터 자체를 복사해서 하나 더 만들고 싶다면 copy()를 사용합니다. a = {'name':'john', 'age':20} b = a.copy() @joviansummer의 스팀 프로젝트 스팀 증인노드를 운영중입니다. @jswit에 증인투표해 주시면 감사하겠습니다. ( https://steemitwallet.com/~witnesses ) jswit 증인 노드 프로젝트를 시작합니다. jsup 업보팅(upvoting) 서비스 소개 jsup 수혜자 지정 기능 추가 jSTEEM 프로젝트 - 텔레그램 챗봇으로 구현하는 스팀 블럭체인 탐색기 STEEM.NFT - 디지털 아트 보존 프로젝트

파이썬에서 스택(stack) 사용

by joviansummer original STEEMIT post: https://steemit.com/blog/@joviansummer/stack 파이선에서 리스트(list) 형식을 스택(stack)으로 사용할 수 있습니다. 데이터를 하나씩 추가하고, 사용하기 위해 뺄 때는 가장 나중에 추가된 데이터부터 역순으로 빼 오는 방식입니다. 리스트에서 데이터를 추가하기 위한 append()가 있고, 마지막 데이터를 가져온 후에 삭제하는 pop()이 있기 때문에 간편하게 스택으로 사용할 수 있습니다. 간단한 예시를 보겠습니다. # 리스트 초기화 x = [] # 데이터 추가 x.append('abc') x.append('def') # 몇개의 데이터가 추가되었는지 확인 print(len(x)) # 리스트 내용 출력 print(x) ['abc', 'def'] 리스트에 저장된 원소의 인덱스값을 -1로 지정하면 가장 마지막 원소를 지칭하므로, 마지막에 저장된 데이터는 x[-1]에 있습니다. # 마지막에 저장된 데이터 출력(삭제는 하지 않음) print(x[-1]) 'def' 데이터를 꺼내서 변수 y에 저장해 봅니다. y = x.pop() 이제 y에는 문자열 'def'가 저장되어 있고, x는 원소가 하나 줄어서 ['abc'] 이렇게 됩니다. print(x) ['abc'] print(y) 'def' 순차적으로 가져온 데이터를 역순으로 하나씩 처리해야 할 때 편리합니다. @joviansummer의 스팀 프로젝트 스팀 증인노드를 운영중입니다. @jswit에 증인투표해 주시면 감사하겠습니다. ( https://steemitwallet.com/~witnesses ) jswit 증인 노드 프로젝트를 시작합니다. jsup 업보팅(upvoting) 서비스 소개 jsup 수혜자 지정 기능 추가

파이썬에서 텍스트 파일을 한줄씩 읽어서 리스트(list)에 할당

by joviansummer original STEEMIT post: https://steemit.com/blog/@joviansummer/list 파이썬에서 텍스트 파일을 읽어서 한줄씩 리스트(list)의 원소로 할당하는 방법입니다. 빈 리스트를 하나 선언한 후 for 반복문을 이용해서 간편하게 작업할 수 있습니다. # my_data.txt 파일을 읽기('r')로 열기 f = open('my_data.txt', 'r') f_data = [] # 파일 객체 f로부터 한줄씩 읽어서 리스트에 추가 for line in f: f_data.append(line.rstrip()) 파일을 열고 for 반복문을 이용해서 한줄씩 리스트에 append()로 할당합니다. 읽은 텍스트에는 줄바꿈이 포함되어 있으므로 제거하고 싶다면 rstip()을 이용해서 줄바꿈을 제거합니다.

파이썬 리스트(list)의 인덱스와 원소값에 대한 순차적인 처리 (enumerate)

by joviansummer original STEEMIT post: https://steemit.com/blog/@joviansummer/list-enumerate 파이썬에서 리스트(list) 형식의 자료를 순차적으로 가져와 처리할 때 인덱스(index)와 원소(element)값을 같이 가져와서 뭔가 작업을 하고 싶을 경우 enumerate() 함수를 for 반복문과 조합하면 됩니다. 인덱스는 리스트에 속한 각 원소의 위치(순서)를 나타내며 0부터 시작합니다. 예시를 보면 금방 알 수 있습니다. # 리스트 fruits = ['orange', 'banana', 'apple'] # 인덱스값과 원소값을 순차적으로 출력 for idx,val in enumerate(fruits): print('index:', idx, ' - value:', val) index: 0 - value: orange index: 1 - value: banana index: 2 - value: apple 원소값만 가져와 순차적으로 처리할 경우에는 간단히 아래와 같이 합니다. for val in fruits: print(val) orange banana apple

파이썬 리스트에서 특정 원소에 대응하는 인덱스값 가져오기

by joviansummer original STEEMIT post: https://steemit.com/blog/@joviansummer/5rmqcm 파이썬에서 리스트(list)의 특정 원소가 어느 위치에 있는지, 즉 인덱스(index)를 구하는 방법입니다. fruits = ['orange', 'apple', 'banana'] # 'apple'에 해당되는 인덱스 구하기 idx_apple = fruits.index('apple') print(idx_apple) 1 위의 예시에서 'apple'은 두번째 원소이므로 (0부터 시작하는) 인덱스는 1이 됩니다. 만약 같은 원소가 2개 이상 있을 경우에는 낮은 값의 인덱스가 구해집니다. x = ['a','b','b','c','d','c'] print(x.index('b')) 1 print(x.index('c')) 3 만약 리스트에 포함되지 않은 원소에 대해서 인덱스를 구하려 할 경우에는 예외(exception)가 발생한다는 점도 유의해야 겠습니다.

파이썬에서 리스트(list) 정렬(sort)

by joviansummer original STEEMIT post: https://steemit.com/blog/@joviansummer/list-sort sorted() 함수를 이용해서 리스트에 담긴 값들을 정렬할 수 있습니다. x = [1, 3, 5, -1, 0] # x의 값을 오름차순으로 정렬하여 x_sorted에 할당 x_sorted = sorted(x) 결과값을 비교하면 아래와 같습니다. print(x) [1, 3, 5, -1, 0] print(x_sorted) [-1, 0, 1, 3, 5] 반대로 내림차순 정렬을 하려면 아래와 같이 합니다. # x의 값을 내림차순으로 정렬하여 x_sorted_rev에 할당 x_sorted_rev = sorted(x, reverse=True) print(x_sorted_rev) [5, 3, 1, 0, -1] 리스트에 문자열을 저장했을 경우에도 정렬이 됩니다. y = ['xyz', 'def', 'abc'] y_sorted = sorted(y) print(y_sorted) ['abc', 'def', 'xyz'] 한가지 생각할 점은, 리스트에 담긴 값들이 같은 종류의 값이어야 한다는 점입니다. 예를 들어 문자열(string)과 정수(int)가 혼합된 리스트에서는 sorted() 함수를 사용하지 못합니다.