파이썬 리스트 float 변환 - paisseon liseuteu float byeonhwan

우선 텍스트 파일의 데이터를 불러와서 리스트를 만들어 보도록 합니다.

텍스트파일의 데이터 불러오기

예제 데이터 파일 입니다. 지진 데이터가 1열로 나열되어 있습니다.

숫자만 뽑아 내도록 합니다.

첫 번째 코드입니다.

data = [] path='C:\\py_gom\\ops\\OpenSeesPyDoc-master\\pyExamples\\GM\\GM11.AT2' with open(path) as f: for line in f: try: if type(float(line[0])) == float: data.append(line) except ValueError: pass print(data[:5])

파일을 한줄씩 불러오면서 float타입으로 변환이 되면 숫자로 판단하여 data list에 추가합니다.

data list의 앞에 5개를 출력해보면 아래와 같이 나옵니다.

리스트의 데이터타입 변경하기

위 리스트의 데이터 타입을 문자열로 한번에 변경해 보겠습니다.

data_5 = data[:5] data_str = list(map(str, data_5)) print (data_str)

map 명령어를 이용하여 리스트의 데이터 타입을 한번에 변경할 수 있습니다.

문자열 리스트를 다시 소수 타입으로 변경할 때는

data_float = list(map(float, data_str)) print(data_float)

잘 변경 됩니다.

맺음

궁금한데 직접해보기 귀찮거나 찾아봐도 잘안되는 코딩 있으시면 문의 주세요 !

예제로 만들어 드려요.

Python에서 float 타입을 String 타입으로 변환하는 방법을 소개합니다.

  • 1. float()으로 문자열 변환
  • References

1. float()으로 문자열 변환

float()는 인자로 전달된 타입을 string으로 변환합니다.

type()을 이용하여 변환된 변수의 타입이 float인지 확인할 수 있습니다.

# string floatStr = "1.2345" print(floatStr) print(type(floatStr)) # str -> float floatStr = float(floatNum) print(floatNum) print(type(floatNum))

Output:

1.2345 <class 'str'> 1.2345 <class 'float'>

References

  • RealPython - String

[파이썬] 리스트 변형 :: 리스트를 원하는 형태로 바꾸기, 리스트 형변환

  • 2019.08.15 22:28
  • Programming Language/Python

어떤 리스트를 원하는 형태로 변형하기

파이썬은 list 안의 모든 원소를 내가 원하는 형태로 변형하기 쉽다.
나는 문자열 list를 int형 리스트로 변환할 때 많이 사용한다. 특히, 백준 문제를 풀 때 input함수나 readline함수를 사용하여 숫자를 입력 받았을 때 많이 사용한다.
그 외에도 기존 list의 원소들을 모두 제곱할 때나 원하는 형태로 바꾸고 싶을 때 유용하다!!

방법 1: map 함수 사용하기

첫 번째 방법은 map내장 함수를 사용하는 것이다.

map함수는 저번에 작성한 글([파이썬] 리스트 필터링)에서 설명한 filter함수의 사용법과 비슷하다.
map함수는 한 원소에 대해 원하는 대로 변형한 것을 반환하는 함수와 변형할 대상인 list가 필요하다.

map함수는 다음과 같이 사용하면 된다.
예를 들어서, 내가 
  originalList= [2, 4, 6, 8, 10, 12]
위와 같은 list의 원소들을 모두 2로 나눈 list를 구하고 싶다고 해보자.
먼저, 숫자를 2로 나눈 것을 반환하는 함수를 만든다.
  def divideByTwo(x):
     returnx/2
다음, divideByTwo함수를 인자로 하는 map함수를 쓰면 끝이다.
newList = list(map(divideByTwo, originalList))
그러면 newList의 원소들은 [1.0, 2.0, 3.0, 4.0, 5.0, 6.0]가 된다.
참고로 map함수를 list()로 감싸준 이유는 map함수는 iterable(map object)을 반환했기 때문이다. 그래서 list로 쓸려면 우리가 list로 만들어 줘야 한다.

방법 2: List Comprehension 사용하기

두 번째 방법은 List Comprehension을 사용하는 것이다.

List Comprehension에 대해서는 저번에 작성한 글([파이썬] 리스트 필터링)에서 많이 설명했으므로 사용하는 법 위주로 보여주겠다.
originalList에 있는 모든 원소들에 2를 곱한 새로운 리스트를 얻으려면 다음과 같이 할 수 있다.
  originalList= [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
  doubledList = [2*x for x in originalList]
x라는 변수를 사용하여 originalList에 있는 모든 원소들을 반복하며 2*x의 형태로 doubledList에 저장한 것이다.
따라서, doubledList[2, 4, 6, 8, 10 ,12, 14, 16, 18, 20]가 된다.

More Examples

문자가 원소인 리스트 int형 리스트로 형 변환하기

방법 1: map

map함수

  • 형식: map(함수_이름, iterable)
  • map함수의 인자로 들어가는 함수는 람다를 쓰면 편하다.
  • 리턴 타입: iterator (map object)
  • Python3 내장 함수이다.
originalList = ['2', '4', '6', '8', '10', '12'] intList = list(map(int, originalList)) print(intList) # 출력 결과: [2, 4, 6, 8, 10, 12]

방법 2: List Comprehension

List Comprehension

originalList = ['2', '4', '6', '8', '10', '12'] intList = [int(x) for x in originalList] print(intList) # 출력 결과: [2, 4, 6, 8, 10, 12]

Toplist

최신 우편물

태그