다음과 같이 2차원 리스트가 있을 때 행은 열로, 열은 행으로 변환할 수 있다.

li = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
print(li)
li = list(map(list, zip(*li)))
print(li)
'''
output : 
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
[[1, 4, 7], [2, 5, 8], [3, 6, 9]]
'''

 

'Language > Python' 카테고리의 다른 글

멜론차트 1~50위 크롤링  (0) 2019.09.02
반복문(for)  (0) 2019.03.07
반복문(while)  (0) 2019.02.09
조건문(if)  (0) 2019.02.08
입력 함수(input)  (0) 2019.02.08
  1. import requests
  2. from bs4 import BeautifulSoup
  3.  
  4.  
  5.  
  6.  
  7. = open("crawl_data.txt", 'w', -1, "utf-8")        # utf-8 속성이 있어야 파일 쓸 때 인코딩 에러 x
  8. header = {'User-Agent''Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko'}    # 멜론 사이트는 헤더 값이 있어야 함
  9.  
  10. code = requests.get(url, headers = header).text     # 크롤링할 페이지의 모든 태그를 가져옴
  11. soup = BeautifulSoup(code,'html.parser')            # html 파일을 가져옴
  12. title = soup.find_all("div", {"class":"ellipsis rank01"})       # 노래 제목의 정보는 div 태그의 ellipsis rank01클래스 안에 있음
  13.                                                                 # find_all함수는 해당 조건에 맞는 모든 태그를 가져옴
  14. singer = soup.find_all("div", {"class":"ellipsis rank02"})      # 가수의 정보는 div 태그의 ellipsis rank02클래스 안에 있음
  15.  
  16. real_title = []
  17. real_singer = []
  18.  
  19. for i in title:
  20.     real_title.append(i.find('a').text)         # html 태그에서 노래 제목만(a 태그의 텍스트 값)
  21.                                                 # find함수는 해당 조건에 맞는 하나의 태그만 가져옴. 중복이면 가장 첫 번째 태그
  22.  
  23. for j in singer:
  24.     real_singer.append(j.find('a').text)        # html 태그에서 가수만(a 태그의 텍스트 값)
  25.  
  26. for k in range(1,51):   # 차트 순위가 1위~50위
  27.     f.write("{}.{} -{}\n".format(k,real_title[k],real_singer[k]))   # '1(순위).노래제목 -가수'의 형태로 데이터를 저장
  28.  
  29. f.close()

 

결과 값 : 

'Language > Python' 카테고리의 다른 글

2차원 리스트 행렬 변환  (0) 2021.07.02
반복문(for)  (0) 2019.03.07
반복문(while)  (0) 2019.02.09
조건문(if)  (0) 2019.02.08
입력 함수(input)  (0) 2019.02.08

리스트, 튜플, 문자열 등 요소가 나열된 자료형의 첫 요소부터 마지막 요소까지 변수에 대입

요소 개수만큼 반복


[기본 구조]

for 변수 in 리스트 :

수행문 (이때 변수에는 리스트의 요소 값이 대입된 상태)


for문에서 사용되는 변수는 선언과 동시에 생성 되는 개념이기 때문에 미리 만들어 놓지 않아도 된다.

1
2
3
for i in [123456789]:
    print(i*2)
# 출력값 : 246, 912, 1578
cs


range() : 지정한 범위 만큼 숫자들을 반환하는 함수

1
2
print(list(range(1,10)))
# 출력값 : [1, 2, 3, 4, 5, 6, 7, 8, 9]

cs

시작 숫자를 지정하고 끝 숫자는 포함하지 않는다.


for문에서 range()함수 사용

1
2
3
4
5
add = 0
for i in range(1,11):
    add += i # i의 값을 add에 누적
print("1~10까지 합 :", add)
출력값 : 1~10까지 합 : 55
cs



'Language > Python' 카테고리의 다른 글

2차원 리스트 행렬 변환  (0) 2021.07.02
멜론차트 1~50위 크롤링  (0) 2019.09.02
반복문(while)  (0) 2019.02.09
조건문(if)  (0) 2019.02.08
입력 함수(input)  (0) 2019.02.08

조건식이 참이면 수행 후 다시 조건식 비교


[기본 구조]

while 조건식:

수행문


조건식에 들어가는 변수는 조건 비교를 위해 사용되는 변수로 미리 만들어 놓지 않으면 오류가 난다.


@ 반복 횟수 지정

1
2
3
4
5
count = int( input("반복 횟수 입력") )
 
while count > 0 :
    print("count = {}".format(count))
    count -= 1
cs

count의 값이 0보다 크면 수행된다.

print 의 내용을 출력하고 count의 값을 1씩 감소한다.

count의 값이 0이 되면 반복문이 수행되지 않는다.


@ 특정 조건 반복

1
2
3
num = 0
while num != 9 : 
    num = int( input("9를 입력하면 종료 : ") )
cs

num이 0이 아니면 반복한다.



'Language > Python' 카테고리의 다른 글

멜론차트 1~50위 크롤링  (0) 2019.09.02
반복문(for)  (0) 2019.03.07
조건문(if)  (0) 2019.02.08
입력 함수(input)  (0) 2019.02.08
bool 자료형  (0) 2019.02.07

[if문의 구조]

if 조건식:

수행문

elif 조건식:

수행문

elif 조건식:

수행문

else:

수행문


1. 조건식

참이나 거짓의 결과가 나오는 식이 있어야 한다.

끝에는 클론(:)을 붙인다. 클론 뒤버터 수행문으로 간주된다.


2. 수행문 

조건식이 만족할 때 수행하고 싶은 코드들

수행문이 되려면 들여쓰기를 해줘야 한다.


3. elif 조건식:

위 조건식이 만족하지 않을 때 검사하는 조건문

if문에 종속되어 혼자 사용 불가능하며 원하는 만큼 여러개가 사용 가능하다.


4. else:

위 조건식들이 모두 만족하지 않으면 수행

if문에 종속되며 하나만 사용 가능하다.

'Language > Python' 카테고리의 다른 글

반복문(for)  (0) 2019.03.07
반복문(while)  (0) 2019.02.09
입력 함수(input)  (0) 2019.02.08
bool 자료형  (0) 2019.02.07
집합(Set)  (0) 2019.02.03

@ 입력

1
input("입력 : ")
cs


@ 입력값을 변수에 대입

1
input_data = input("입력 : ")
cs

입력된 문자열이 변수에 대입되어 저장된다.


@ 숫자를 입력

1
int(input("입력 : "))
cs

입력을 받으면 문자열로 인식하기 때문에 숫자로 형변환을 한다.


@ 한 번에 여러 값을 입력(1)

1
a,b,c = input("입력 : ").split( )
cs

공백을 기준으로 문자열을 나누어서 저장. 기준이 되는 값은 ".", ","등 다양하게 사용 가능


@ 한 번에 여러 값을 입력(2)

1
num1, num2, num3 = map(int, input("숫자 3개 입력 : ").split())
cs

map(함수, 반복 가능한 자료)

반복 가능한 자료의 요소 마다 함수를 수행한다.

여러개의 변수들을 한번에 int형으로 형변환이 가능해진다.

'Language > Python' 카테고리의 다른 글

반복문(while)  (0) 2019.02.09
조건문(if)  (0) 2019.02.08
bool 자료형  (0) 2019.02.07
집합(Set)  (0) 2019.02.03
딕셔너리(Dictionary)  (0) 2019.02.03

참(True)과 거짓(False)를 판별 해주는 자료형. 값은 두개만 있다.

[참과 거짓을 따졌을 때 거짓인 경우]

1. 요소가 없다.

2. 숫자가 0이다.

3. None : 값이 없다는 것을 표현


1
2
3
4
5
6
print(bool(1))
# 출력값 : True
print(bool(0))
# 출력값 : False
print(bool(-59))
# 출력값 : True


bool 자료형은 0이 아니면 모두 True이다. 1은 True를 의미하는 대표적인 숫자


'Language > Python' 카테고리의 다른 글

조건문(if)  (0) 2019.02.08
입력 함수(input)  (0) 2019.02.08
집합(Set)  (0) 2019.02.03
딕셔너리(Dictionary)  (0) 2019.02.03
튜플(Tuple)  (0) 2019.01.31

집합 자료형은 순서가 없어 인덱싱이 불가능 하다.

요소의 중복이 허용되지 않는다.

> 요소의 중복 제거 용도로 쓰일 수 있다.


1
2
3
set1 = {1,2,1,2,4,5,2,1,4}
print(set1)
# 출력값 : {1, 2, 4, 5}
cs

중복된 값들은 제거되고 출력된다.


집합을 인덱싱하고 싶으면 리스트로 변환하여 인덱싱이 가능하다.

1
2
3
4
set1 = {1,2,1,2,4,5,2,1,4}
lis = list(set1) # {1, 2, 4, 5}
print(lis[2])
# 출력값 : 4
cs


'Language > Python' 카테고리의 다른 글

입력 함수(input)  (0) 2019.02.08
bool 자료형  (0) 2019.02.07
딕셔너리(Dictionary)  (0) 2019.02.03
튜플(Tuple)  (0) 2019.01.31
리스트 관련 함수  (0) 2019.01.31

형태 : {key1:value1, key2:value2, ... }

딕셔너리 자료형은 순서가 없어서 인덱싱이나 슬라이싱이 가능하지 않다.

<주의사항>

- key는 중복되면 안 된다. (value를 찾아가는 인덱스 같은 역할)

- key에는 리스트, 딕셔너리 데이터를 사용할 수 없다.

> key : 변하지 않는 값 (숫자, 문자열, 튜플)

> value : 아무거나 사용 가능 (중복도 가능)


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
dic = {"apple":"사과""school":"학교""book":"책"}
print(dic)
# 출력값 : {'apple': '사과', 'school': '학교', 'book': '책'}
print(dic["school"])
# 출력값 : 학교
 
# 딕셔너리 추가
dic["cat"= "고양이"
print(dic)
# 출력값 : {'apple': '사과', 'school': '학교', 'book': '책', 'cat': '고양이'}
 
# 딕셔너리 삭제
del(dic["apple"])
print(dic)
# 출력값 : {'school': '학교', 'book': '책', 'cat': '고양이'}
cs

딕셔너리는 출력할 때 key를 인덱싱 하듯이 사용하면 value 값이 반환된다.

딕셔너리에 값을 추가할 때는 [key] = value 형태로 추가한다. 

값을 삭제할 때는 지우고 싶은 key를 사용하면 value와 함께 한 쌍으로 제거된다.

'Language > Python' 카테고리의 다른 글

bool 자료형  (0) 2019.02.07
집합(Set)  (0) 2019.02.03
튜플(Tuple)  (0) 2019.01.31
리스트 관련 함수  (0) 2019.01.31
리스트(List)  (0) 2019.01.30

튜플은 ( )소괄호로 생성 할 수 있다.

한 번 생성하면 값을 바꿀 수 없다.

1
2
3
tu = (1,2,3)
print(tu)
# 출력값 : (1, 2, 3)
cs


튜플을 생성할 때는 괄호를 생략할 수 있다.

1
2
3
tu = 1,2,3
print(tu)
# 출력값 : (1, 2, 3)
cs


'Language > Python' 카테고리의 다른 글

집합(Set)  (0) 2019.02.03
딕셔너리(Dictionary)  (0) 2019.02.03
리스트 관련 함수  (0) 2019.01.31
리스트(List)  (0) 2019.01.30
포매팅  (0) 2019.01.30

+ Recent posts