( 출처 : https://soooprmx.tistory.com/entry/%EB%A6%AC%EC%8A%A4%ED%8A%B8%EC%97%90%EC%84%9C-%EC%A4%91%EB%B3%B5%EB%90%9C-%EC%9B%90%EC%86%8C%EB%A5%BC-%EC%A0%9C%EA%B1%B0%ED%95%98%EA%B8%B0 )

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

파이썬 튜플,리스트,딕셔너리,집합의 인덱싱 및 정렬  (0) 2019.09.28

(용어 : mutable은 값이 변한다는 뜻이고, immutable은 값이 변하지 않는다는 의미이다.)



1. 튜플


● tuple(튜플)은 불변한 순서가 있는 객체의 집합입니다.

● list형과 비슷하지만 한 번 생성되면 값을 변경할 수 없습니다.

● list와 마찬가지로 다양한 타입이 함께 포함될 수 있습니다.


튜플의 기본 사용법(선언, 인덱싱) : https://wikidocs.net/16042


* 리스트에서 튜플 원소 추가

>>> lst = []

>>> lst.append( (1, 2) )

>>> lst.append( (2, 3) )

>>> lst

[ (1, 2), (2, 3) ]


* 정렬

example_tuples = [ ('A', 3, 'a'), ('B', 1, 'b'), ('C', 2, 'c') ]  # 플 원소로 이루어진 리스트
# 특정 인덱스로 오름차순 정렬 example_tuples.sort(key = lambda element : element[1])

(출처 : https://twpower.github.io/118-sort-list-elements-by-using-key)





2. 리스트


* 리스트에 원소 삽입할때, 주의할점 

>>> lst = []

>>> lst.append(1, 2)       -> 불가능

>>> lst.append(1)

>>> lst.append(2)


* 정렬

example_list = ['나는', '파이썬을', '잘하고', 싶다']

# 길이순으로 내림차순 정렬
example_list.sort(key = len, reverse = True)

example_list2 = ['a', 'python', 'ab', 'accc', 'b']


# 길이순으로 정렬하면서, 같은 길이에서는 알파벳 순으로 정렬

example_list2 = sorted(example_list2, key = lambda x: (len(x), x))





3. 딕셔너리


>>> dic = {} 


● 딕셔너리 타입은 immutable한 키(key)와 mutable한 값(value)으로 맵핑되어 있는 순서가 없는 집합입니다.

● 값은 중복될 수 있지만, 키가 중복되면 마지막 값으로 덮어씌워집니다. ★★★

● 순서가 없기 때문에 인덱스로는 접근할수 없고, 키로 접근 할 수 있습니다.

● mutable 한 객체이므로 키로 접근하여 값을 변경할 수 있습니다.

● 새로운 키와 값을 아래와 같이 추가할 수 있습니다.


딕셔너리 선언 & 추가 & 변환 & For문 : https://wikidocs.net/16043


* 정렬

dic = { 'a': 7, 'bc': 5, 'ba': 5 }  
# key값으로 오름차순 정렬 sdic = sorted(dic.items()) # items() 함수를 호출하면, key-value쌍이 tuple로 구성된 리스트가 리턴
>>> [('a': 7), ('ba': 5), ('bc': 5)]

import operator


# value값으로 오름차순 정렬

sdic2 = sorted(dic.items(), key = operator.itemgetter(1)) # 1번째 인덱스 기준으로 정렬

>>> [('bc': 5), ('ba': 5), ('a': 7)]


# 1번째 인덱스 기준으로 정렬후, 같은 값이 나온다면 0번째 인덱스 기준

sdict3 = sorted(dic.items(), key = operator.itemgetter(1, 0))

>>> [('ba': 5), ('bc': 5), ('a': 7)]




4. 집합 


 >>> s = set()


● 순서가 없고, 집합안에서는 unique한 값을 가집니다.

● 그리고 mutable 객체입니다.

● 중괄호를 사용하는 것은 dictionary와 비슷하지만, key가 없습니다. 값만 존재합니다.


집합 선언 & 추가 : https://wikidocs.net/16044


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

리스트 중복 원소 제거방법 (순서 유지)  (0) 2019.11.01



파이썬 3.7에서는 import Error가 나서 한 2~3 시간은 애를 먹었다...


파이참(PyCharm)의 Project interpreter 에서 

1)'BeautifulSoup4'는 깔리지만 깔아도 import를 할 수 없었고,

2)'BeautifulSoup'는 애초에 깔리지도 않았다.

3)'bs4' 를 깔아도 import 할 수 없었다...


도저히 해결방법을 모르겠어서 아나콘다도 지우고, 기존의 파이썬 3.7도 지우고, 파이썬 3.6을 다시다운 받았다..



결국

파이썬 3.6을 다운받은 후...


(cmd)                                                                                           

$> python -m pip install bs4                                                           

                                                                                                  

(IDE)                                                                                            

from bs4 import BeautifulSoup        -> 대소문자를 꼭 구별해주어야한다. 



이렇게만 해주면 정상적으로 작동한다...




1. Anaconda 설치 


반드시 파이썬을 설치하지 않은 상태에서 아나콘다를 설치할 것 !!

( anaconda는 수학과 과학 패키지를 포함한 파이썬이므로 파이썬을 먼저 설치해줄 필요가 없다. 그런데 python을 먼저 설치해버리면, anaconda에 내장된 python과 기존의 python이 충돌이 일어나 문제가 생기는 것이다. )


최근 텐서플로우가 파이썬3.7버전도 지원을 하게 되면서 현재 가장 최신 버전인 3.7 버전을 받으면 된다.



 (참고) Windows 환경에서 Anaconda + Tensorflow 설치문제 해결하기


출처 : https://youngjoongkwon.com/2018/01/26/windows-%ED%99%98%EA%B2%BD%EC%97%90%EC%84%9C-anaconda-tensorflow-%EC%84%A4%EC%B9%98%EB%AC%B8%EC%A0%9C-%ED%95%B4%EA%B2%B0%ED%95%98%EA%B8%B0-no-module-named-tensorflow-%EC%97%90%EB%9F%AC/



2. 텐서플로우 + 쥬피터 노트북 설



출처 : https://zvi975.tistory.com/65


(anaconda Prompt)

conda update conda

conda create -n py36 python=3.6 anaconda

conda info --envs



activate [가상환경 이름]

conda install tensorflow  

(삭제: conda remove 패키지이름)

conda install tensorflow==1.14  (2.0 버전은 tf.placeholder등 인식 불가)

conda list

jupyter notebook



* 필요하면 3.6 버전으로 다운그레이드 시켜서 'py36'이라는 이름의 conda가상환경을 만들어주도록 하자. (3.7 버전은 케라스와 호환X)



2-1. import tensorflow 안될 때 


https://copycoding.tistory.com/79 










* (참고) 파이참(Pycharm) 개발도구 설치 + Tensorflow 설치


 (참고) Pycharm에 Tensorflow 설치하는 법 


https://webnautes.tistory.com/1173



* (참고) 파이참 콘솔에 뜨는 경고 메세지 없애기 


 (참고) 텐서플로우 경고 메세지 없애기  : Your CPU supports instructions that this tensorflow binary was not compiled to use AVX 


https://m.blog.naver.com/PostView.nhn?blogId=complusblog&logNo=221237740617&proxyReferer=https%3A%2F%2Fwww.google.com%2F