Programing

현을 정수로 변환하는 방법?

c10106 2022. 3. 23. 20:04
반응형

현을 정수로 변환하는 방법?

다음과 같은 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를 구축한다.listint의 연속에서 s.int10진수 문자열과 같은 -가능 객체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

반응형