fhand = open('romeo.txt') counts = {} for line in fhand: words = line.split() for word in words: counts[word] = counts.get(word, 0 ) + 1 lst = [] for key, val in counts.items(): newtup = (val, key) lst.append(newtup) lst = sorted(lst, reverse=True) for val, key in lst[:10] : print(key, val) 텍스트 파일에서 가장 많이 활용한 단어 Top 10가지를 출력하는 프로그램이다. 먼저 text 파일을 열어준다. counts 딕셔너리를 하나 생성한다. for문을 통해 txt 파일이 끝날때까..
리스트(List)와 비슷한 컬렉션, 튜플(Tuple) 튜플은 리스트와 굉장히 비슷하다. 리스트와의 차이는 대괄호 대신 소괄호를 사용한다는 것 정도가 있다. 리스트와 같이 인덱스에 따른 순서가 있어 인덱스로 접근이 가능하고 최대값 또한 찾을 수 있다. x = ('Glenn', 'Sally', 'Joseph') print(x[2]) # Joseph y = ( 1, 9, 2 ) print(y) # (1, 9, 2) print(max(y)) # 9 하지만 튜플은 변경이 불가능하다. immutable, 즉 값을 변경할 수가 없다. 리스트에서는 값을 변경할 수 있다. x = [9, 8, 7] x[2] = 6 print(x) # [9, 8, 6] 하지만 튜플에서는 오류가 발생한다. 이는 immutable한 속성에서 ..
어느 리스트에 사람 성씨가 있고 그 성씨를 카운트하는 일을 한다고 가정해보자. 반복적인 일을 해야하니 반복문이 들어갈 것이고 카운팅을 한다는 조건이 있으니 조건문이 들어갈 것이다. counts = dict() names = ['김', '이', '박', '이', '최', '박', '제갈', '김', '이', '박'] for name in names : if name in counts: counts[name] = counts[name] + 1 else : counts[name] = 1 print(counts) # {'김': 2, '이': 3, '박': 3, '최': 1, '제갈': 1} 이것의 동작 방식은 아래와 같다. names 리스트를 하나씩 순회하면서 counts 딕셔너리와 리스트의 이름들을 하나씩 비..
딕셔너리도 리스트와 마찬가지로 컬렉션이며, 하나의 변수에 여러개의 정보를 저장할 때 사용한다. 리스트는 순서대로 정리된 컬렉션이며, 데이터를 추가하면 항상 리스트 끝에 추가가 된다. 하지만 딕셔너리에는 순서가 없다. 대신 키(Key)라는 것이 존재한다. 포스트잇이 Key 물건이 value 라면 Key : value 식으로 항상 붙어다닌다. 비유하자면 리스트는 감자칩이 잘 정돈되어 보관된 프링글스와 같으며 딕셔너리는 마구마구 뒤섞여있는 스윙칩 봉지라고 할 수 있겠다. 딕셔너리 생성 변수 = dict() 또는 변수 = { } 처럼 생성할 수 있다. bag = dict() # 또는 bag = {} bag['apples'] = 12 # apples라는 키에 12 연결 bag['coconut'] = 1 # coc..
문자열과 리스트는 잘 어울려 사용된다. 이는 내장함수 .split() 의 역할이 크다 split() split() 함수는 해당 문자열을 쪼개서 리스트로 정리해준다. abc = 'With three words' stuff = abc.split() print(stuff) # ['With', 'three', 'words'] 로 출력된다. split 함수는 sep, maxsplit 2개의 파라미터 인자가 있다. sep은 어떠한 값을 기준으로 분할할 것이냐? 이고 maxsplit은 분할을 몇번할 것이냐? 이다. 아래 코드는 sep = 공백을 기준으로 1번만 분할하겠다는 의미이다. abc = 'With three words' stuff = abc.split(sep=" ", maxsplit=1) print(stuff..
https://docs.python.org/3/tutorial/datastructures.html 5. Data Structures — Python 3.10.4 documentation 5. Data Structures This chapter describes some things you’ve learned about already in more detail, and adds some new things as well. 5.1. More on Lists The list data type has some more methods. Here are all of the methods of list objects: list.append(x) docs.python.org 리스트 내장함수는 위의 사이트에서 더욱 잘 ..
https://docs.python.org/3/tutorial/datastructures.html 5. Data Structures — Python 3.10.4 documentation 5. Data Structures This chapter describes some things you’ve learned about already in more detail, and adds some new things as well. 5.1. More on Lists The list data type has some more methods. Here are all of the methods of list objects: list.append(x) docs.python.org 리스트는 자료구조이다. 자료구조는 컴퓨터 내..
파일 열기 open()으로 파일을 열면 파일 핸들은 텍스트 파일을 한 줄 씩 읽어나가게 된다. hand = open('mbox-short.txt', 'r') for line in hand : print(line) 파일의 라인 수 세기 count를 외부에 지정해두고 반복문을 이용하면 파일이 총 몇문장인지 매우 간단한 방법으로 확인할 수 있다. hand = open('mbox-short.txt', 'r') count = 0 for line in hand : count = count + 1 print(count) for의 line은 hand의 줄이 다 끝날때까지 반복된다. 반복되면서 count에 하나씩 추가하게 된다. read(n) read(n) 함수는 함수 파일 스트림으로부터 해당 위치의 문자 n개를 읽어오..
open() 함수 open() 함수는 말 그대로 파일을 여는 함수이다. 다만 open() 함수는 파일을 반환하는 것이 아닌 그 파일을 쉽게 볼 수 있도록 처리하는 handle을 반환하게 된다. 만약 내가 A라는 파일을 메모리로 열어서 확인하고 싶다. 그럼 메모리와 A라는 파일 사이에 핸들이라는 하나의 포털을 반환한다. (handle은텍스트가 파일 형태 메모리에 저장된 문자열의 형태, 웹 사이트에 존재하는 형태와 같이 다른 방식으로 저장되어 있는 텍스트를 처리하는 표준화된 방식이다.) hand = open('mbox-short.txt') print(hand) # open('파일명입력', '모드 선택') # 1. 파일명 입력 # 파일명은 문자열 타입으로 입력하며, 확장자까지 포함. # 2. 모드 선택 # w..
문자열 슬라이싱 파이썬에서는 슬라이스(slice)라는 기능을 제공하는데, 가져오고 싶은 문자열의 범위를 지정하면 된다. (slice는 '자르다', '일부', '한 조각' 등의 의미가 있다. 대괄호 안에 콜론으로 인덱스를 구분하는 것으로 정의한다. 문자열변수[ : ] ex) str[5:10] str = 'String in Python' # 인덱스는 0부터 시작한다. print(str) # 출력 : String in Python # str 변수를 출력했다. # str은 문자열 String in Python을 값으로 지닌다. print(str[0:4]) # 출력 : Stri # 인덱스 0에 속한 S부터 출력되고 # 인덱스 3(4-1)에 해당하는 i까지 출력된다. print(str[5:99]) # 출력 : g ..