파이썬

파이썬하면서 햇갈리는 함수와 그 성질들

ksge7 2020. 7. 2. 05:30

# 정수(int), 문자열(string), 리스트(list), 튜플(tuple), 세트(set)

 

1. len( x )

* 변수의 리터럴 값이 정수형(int)일 경우 사용할 수 없다.

>>> a = 1
>>> len(a)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: object of type 'int' has no len()

* 문자열, 리스트, 튜플, 세트일 때는 가능하다.

* 문자열을 셀 때는 공백, 기호 포함 문자열의 내 모든 문자의 수를 세어준다.

>>> a = [1,2,3]
>>> len(a)
3
>>> a = (1,2,3)
>>> len(a)
3

>>> a = {1,2,3}
>>> len(a)
3

>>> a = "python is good"
>>> len(a)
14

 

 

2. "y".join( x )

* join함수는 두 가지 기능이 있다.

* 첫 번째는 y란 문자를 x의 문자열 사이에 삽입할 수 있는 기능이다.

* 두 번째는 y란 문자를 x의 문자열 사이에 삽입하며, x의 많은 문자열을 합쳐 하나의 문자열로 돌려준다.

* 그리고 이 두가지는 동시에 이뤄진다.

>>> a = ["a", "b", "c", "d", "e"]
>>> "$".join(a)
'a$b$c$d$e'

* 위와 같이 원하는 문자를 문자열 사이에 넣는 동시에 모든 문자열을 하나의 문자열로 합쳐준다.

 

 join함수는 문자열, 리스트, 튜플,세트 등에서 이용할 수 있다.

>>> a = ["a", "b", "c", "d", "e"] #리스트일때
>>> "$".join(a)
'a$b$c$d$e'

>>> a = ("a", "b", "c", "d", "e") #튜플일떄
>>> "$".join(a)
'a$b$c$d$e'

>>> a = {"a", "b", "c", "d", "e"} #세트일때
>>> "$".join(a)
'd$e$c$b$a'

 

* 중요한건 어느 자료형에 들어있든 그 안의 요소가 정수(int)형일 경우 사용이 불가능하다.

* 즉 어느 자료형에 들어있든 그 안의 요소가 문자열일 때만 사용이 가능하다.

>>> a = [1,2,3,4,5]
>>> "$".join(a)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: sequence item 0: expected str instance, int found

>>> a = (1,2,3,4,5)
>>> "$".join(a)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: sequence item 0: expected str instance, int found

>>> a = {1,2,3,4,5}
>>> "$".join(a)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: sequence item 0: expected str instance, int found

 

* join함수는 리스트, 튜플, 세트에서도 이용이 가능하다.

* 하지만 리스트나 튜플, 세트 안에 있는 요소들이 단 한 개의 문자열로 존재할 경우,

   y라는 문자열을 삽입하는 것이 불가능하다.

* 이 경우 그냥 안의 요소를 문자열로만 돌려준다.

>>> a = ["a:b:c:d"] #리스트 안에 단 한개의 문자열만 요소로서 존재할 경우
>>> "*".join(a)
'a:b:c:d'
>>> a = ["a", "b", "c", "d"] #리스트 내 문자열에 여러개일 경우 새로운 문자열을 삽입후 합친다.
>>> "*".join(a)
'a*b*c*d'

 

 

3. x.split( "y" )

* split는 함수는 문자열을 쪼개서 리스트로 돌려준다.

 

* 특정 문자열을 지정할 경우 해당 문자열을 기준으로 문자열을 쪼개서 리스트를 돌려준다.

>>> a = "a:b:c:d"
>>> a.split(":")
['a', 'b', 'c', 'd']

 

* 임의로 특정 문자열을 지정하지 않을 경우 해당 문자열을 쪼개지 못하고 그대로 리스트에 넣어 돌려준다.

>>> a = "a:b:c:d"
>>> a.split()
['a:b:c:d']

 

* 다만 특정 문자열을 지정하지 않았어도 공백 등으로 컴퓨터가 자동으로 구분할 수 있다면,

  해당 기준점을 기준으로 문자열을 쪼개서 리스트로 돌려준다.

>>> a="python is good"
>>> a.split()
['python', 'is', 'good']