파이썬에서 두 개의 문자열 (숫자 만)이 있다고 가정합니다. 예를 들어 문자열 a와 문자열 b가 있습니다. c = a.b라는 숫자를 생성하는 가장 빠른 방법은 무엇입니까 (정수 부분과 b 소수 부분)?파이썬에서 두 개의 숫자를 연결하는 가장 빠른 방법
답변
float
및 format
을 사용하십시오.
>>> a, b = '12', '345'
>>> float('{0}.{1}'.format(a, b))
12.345
편집 : (나는 속도 w.r.t. 다른 솔루션을 테스트하지 것처럼)이 가장 빠른 주장 할 수 있지만, 작업을 끝낼 않습니다.
짧은 문자열에서는 가장 빠를 수는 없지만 가장 빠르지는 않습니다. 이전 스타일의 포맷팅은 새로운 스타일의 포맷보다 더 빠릅니다 (적어도 사용한 파이썬 버전의 경우). 문자열을 짧게 만들면 문자열을 더 빨리 만들 수 있으며, 문자열 포맷 기능이 필요하지 않습니다. 문자열이 많지 않습니다. – agf
@agf 흥미 롭습니다. 나는 옛날 스타일 형식이 2.x에서 더 빠르다는 것을 몰랐다. 호기심에서 3.x의 속도를 비교해 보았습니까? (나는 그렇지 않다) –
나는 3.2에서 여전히 느리다 고 믿지만 지금은 테스트 할 수 없다. – agf
이 a
또는 b
이 정수 (예를 들어 경우뿐만 아니라 숫자)로 변환 할 수없는 ValueError
경우 올릴 것이다 : 빨리는 측면에서 의미하는 경우
float('%d.%d' % (int(a), int(b)))
(파이썬 2.7에서 테스트를)
float("%s.%s"% ("12", "345"))
timeit 결과 :
속도의 내 사용은 날이 좋습니다>>> timeit.Timer('float("%s.%s"% ("12", "245"))').timeit()
0.39421987533569336
>>> timeit.Timer('float("{0}.{1}".format("12", "245"))').timeit()
0.573634147644043
그냥 궁금해서 파이썬 2.x 나 3.x를 사용하고 있습니까? –
2.7.1 Mac. 그리고 추가하기 위해 미리 할당을 사용하면 약간 느려지지만 형식에는 여전히 불이익이 있습니다. – petr
원시 형식 (가장 빠를 수 있습니까?) : float(str(a) + '.' + str(b))
이 솔루션은 형식 문자열을 구문 분석 할 필요가 없습니다. [불신자에 대한 답변으로 추가]
설명의
>>> timeit.Timer('float("%s.%s"% ("12", "245"))').timeit()
1.147318164738806
>>> timeit.Timer('float("{0}.{1}".format("12", "245"))').timeit()
1.5033958226534452
>>> timeit.Timer('float("12" + "." + "245")').timeit()
0.6646503955111598
부분은 항상 심지어 INT 인수 %s
을 쓸 수있을 수 있습니다. % 또는 via .format()
을 통해 형식을 지정하면 추가 문자열 변환이 발생할 가능성이 있습니다.
- 1. 두 개의 숫자를 나누어서 지수를 찾는 가장 빠른 방법
- 2. Objective-C에서 두 개의 숫자를 연결하는 방법
- 3. 최소 두 개의 숫자로 가장 빠른 방법
- 4. 파이썬에서 1,000,000 개 이상의 임의의 숫자를 생성하는 가장 빠른 방법
- 5. 파이썬에서 가장 빠른 반복 방법
- 6. 두 개의 숫자를 Map 키로 사용하는 방법
- 7. 파이썬에서 빠른 필터 방법
- 8. 두 개의 xibs를 연결하는 방법?
- 9. 여러 문자열을 연결하는 가장 빠른 방법
- 10. 파이썬에서 목록을 검색하는 가장 빠른 방법
- 11. 파이썬에서 두 개의 데몬을 연결하십시오.
- 12. csv 파일을 두 개의 열로 줄이는 가장 빠른 방법
- 13. 설탕 crm에 두 개의 숫자를 추가하는 방법
- 14. 파이썬에서 여러 개의 트리 사본을 얻는 가장 빠른 방법은 무엇입니까?
- 15. 주어진 포인트에 가장 가까운 점을 파이썬에서 찾는 가장 빠른 방법
- 16. PHP에서 두 이미지를 연결하는 가장 빠른 방법은 무엇입니까?
- 17. 비교 및 두 개의 숫자를
- 18. 두 개의 숫자를 더하는 계산기
- 19. Tesseract는 두 개의 숫자를 혼동합니다.
- 20. 두 개의 const char *를 연결하는 방법?
- 21. JSON.NET JSON.net에서 두 개의 JSON을 연결하는 방법
- 22. 두 개의 서식있는 텍스트 상자를 연결하는 방법
- 23. 두 개의 AFP 파일을 함께 연결하는 방법
- 24. 두 개의 쿼리 결과를 연결하는 방법?
- 25. XQuery : 두 개의 생성자를 연결하는 방법
- 26. CSV에서 두 개의 필드를 연결하는 방법
- 27. 두 개의 checklistbox 항목을 연결하는 방법?
- 28. SQL과 PHP로 두 개의 테이블을 연결하는 방법
- 29. wicket에서 두 개의 텍스트 상자를 연결하는 방법?
- 30. 두 객체의 속성을 비교하는 가장 빠른 방법
건설적이지 않은 것으로 마감. 선행 연구가 있었다면 (실제로는 사전에 노력하지 않았기 때문에 -1), 당신이 알고있는 다양한 접근법의 벤치 마크와 같은 * 유머가 있습니다. –
@pst : 내 +1. 바보 같은 질문은 없습니다. 이것은 분명히 아닙니다. 당신은 뒤에있는 동기를 모른다. 그리고 그 답은 가장 빠른 해결책이 처음에는 고려되지 않았다는 것을 증명합니다. 가치있는 토론이 있습니다. – pepr
@pepr "어리석은 질문"이 없다고 가정하면 여전히 "조사되지 않은 질문"이 있으며, 근거가 없기 때문에 일반적으로 매우 "토론"을합니다. 이것은 하나입니다. 다시 말하지만, * 이전 작업/연구가 끝나면 (그리고 보여지는) * 나는 그것을 유머러스하게 할 것이다. –