현을 정수로 변환하는 방법?
다음과 같은 MySQL 쿼리에서 튜플을 한 개 가지고 있다.
T1 = (('13', '17', '18', '21', '32'),
('07', '11', '13', '14', '28'),
('01', '05', '06', '08', '15', '16'))
모든 문자열 요소를 정수로 변환하여 다시 목록으로 만들고자 함:
T2 = [[13, 17, 18, 21, 32], [7, 11, 13, 14, 28], [1, 5, 6, 8, 15, 16]]
나는 그것을 이루려고 노력했다.eval
그러나 아직 이렇다 할 결과를 얻지 못했다.
int()
문자열을 정수 값으로 변환하는 Python 표준 내장 함수.숫자를 포함하는 문자열을 인수로 사용하여 호출하면, 이 문자열은 정수로 변환된 숫자를 반환한다.
>>> int("1") + 1
2
목록의 구조를 알고 있다면 T1(단순히 리스트를 포함하며 한 수준만 포함) Python 3에서 이 작업을 수행할 수 있다.
T2 = [list(map(int, x)) for x in T1]
Python 2의 경우:
T2 = [map(int, x) for x in T1]
목록 이해로 이 작업을 수행할 수 있는 경우:
T2 = [[int(column) for column in row] for row in T1]
내부 목록 이해 ([int(column) for column in row]
)은 a를 구축한다.list
의int
의 연속에서 s.int
10진수 문자열과 같은 -가능 객체row
. 외부 목록 이해 ([... for row in T1])
)는 의 각 항목에 적용되는 내부 목록 이해 결과 목록을 작성한다.T1
.
행에 변환할 수 없는 개체가 포함된 경우 코드 조각이 실패함int
. 십진수가 아닌 문자열을 포함하는 행을 처리하려면 더 스마트한 기능이 필요할 것이다.
행의 구조를 알고 있는 경우 내부 목록 이해를 행의 함수에 대한 호출로 대체할 수 있다.예를 들어
T2 = [parse_a_row_of_T1(row) for row in T1]
차라리 이해력 목록만 사용하는 것이 좋다.
[[int(y) for y in x] for x in T1]
퍼팅 대신int( )
놓다float( )
정수와 함께 십진법을 사용할 수 있게 해줄 거야
나는 지금까지의 모든 대답에 동의하지만, 문제는 당신이 모든 정수를 가지고 있지 않으면 그것들이 무너질 것이라는 것이다.
비정수자를 제외하려면
T1 = (('13', '17', '18', '21', '32'),
('07', '11', '13', '14', '28'),
('01', '05', '06', '08', '15', '16'))
new_list = list(list(int(a) for a in b) for b in T1 if a.isdigit())
이것은 실제 자릿수만을 산출한다.내가 직접 목록 포괄성을 사용하지 않는 이유는 목록 이해력이 내부 변수를 누설하기 때문이다.
이거 먹어봐.
x = "1"
x는 주위에 따옴표가 있기 때문에 문자열이지만, 그 안에 숫자가 들어 있다.
x = int(x)
x에는 숫자 1이 들어있기 때문에 정수로 넘길 수 있다.
문자열이 숫자인지 확인하려면 이렇게 하면 된다.
def is_number(var):
try:
if var == int(var):
return True
except Exception:
return False
x = "1"
y = "test"
x_test = is_number(x)
print(x_test)
x는 숫자이기 때문에 INDLE True로 인쇄해야 한다.
y_test = is_number(y)
print(y_test)
숫자가 아니므로 INDLE False로 인쇄해야 한다.
T3=[]
for i in range(0,len(T1)):
T3.append([])
for j in range(0,len(T1[i])):
b=int(T1[i][j])
T3[i].append(b)
print T3
목록 포함 사용:
t2 = [map(int, list(l)) for l in t1]
이 기능 보기
def parse_int(s):
try:
res = int(eval(str(s)))
if type(res) == int:
return res
except:
return
그러면
val = parse_int('10') # Return 10
val = parse_int('0') # Return 0
val = parse_int('10.5') # Return 10
val = parse_int('0.0') # Return 0
val = parse_int('Ten') # Return None
또한 확인할 수 있다.
if val == None: # True if input value can not be converted
pass # Note: Don't use 'if not val:'
Python 2를 위한 또 다른 기능 솔루션:
from functools import partial
map(partial(map, int), T1)
Python 3은 좀 지저분할 것이다.
list(map(list, map(partial(map, int), T1)))
우리는 포장지로 이것을 고칠 수 있다.
def oldmap(f, iterable):
return list(map(f, iterable))
oldmap(partial(oldmap, int), T1)
Python 3.5.1에서는 다음과 같은 작업을 한다.
c = input('Enter number:')
print (int(float(c)))
print (round(float(c)))
그리고
Enter number: 4.7
4
5
조지
Python은 int(문자열) 기능과 옵션 파라미터 베이스가 내장되어 있다.
문자열에 정수 값이 포함되어 있으면 해당 정수 값으로 변환된다.그러나 십진수를 문자열로 가지고 있다면, 그것을 변환하기 위해 float()가 필요할 것이다.
사용량:
a = '22'
b = int(a)
그리고
if a = '22.22'
b = int(a) '''will give error, invalid literal for int().'''
b = float(a) '''will convert the string.'''
투플레 한 개만 터플이면 뭐랄까.rows=[map(int, row) for row in rows]
요령을 터득할 것이다.(목록 이해와 지도에 대한 호출(f, lst)이 있는데, 이 내용은 [f(a) in lst]와 같다.)
평가란 당신이 하고 싶은 것이 아니다, 만약 그런 것이 있다면.__import__("os").unlink("importantsystemfile")
어떤 이유에서인지 당신의 데이터베이스에.항상 입력의 유효성을 확인하십시오(다른 항목이 없는 경우, 잘못된 입력이 있는 경우 예외 int()가 상승함).
이런 일을 할 수 있다.
T1 = (('13', '17', '18', '21', '32'),
('07', '11', '13', '14', '28'),
('01', '05', '06', '08', '15', '16'))
new_list = list(list(int(a) for a in b if a.isdigit()) for b in T1)
print(new_list)
아직 언급되지 않은 사용 가능한 옵션을 공유하고자 함:
rumpy.random.permutation(x)
배열 x의 임의 순열을 생성한다. 정확히 당신이 요청한 것은 아니지만, 유사한 질문에 대한 잠재적인 해결책이다.
참조URL: https://stackoverflow.com/questions/642154/how-to-convert-strings-into-integers
'Programing' 카테고리의 다른 글
vue.js carousel-3d에 데이터가 표시되지 않음 (0) | 2022.03.23 |
---|---|
환원기(저감-라우터)의 현재 위치에 액세스하는 방법? (0) | 2022.03.23 |
Python 3 ImportError: 'ConfigParser'라는 이름의 모듈 없음 (0) | 2022.03.23 |
전체 개체 대신 Vue 스토어 디스패치 단일 속성 (0) | 2022.03.23 |
변수 값을 수정하는 방법은 다음 번 방법 리디렉션 후 항상 null임 (0) | 2022.03.23 |