다음과 같이 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 표준 내장 함수입니다. 인수로 숫자를 포함하는 문자열로 호출하고 정수로 변환 된 숫자를 리턴합니다.
print (int("1") + 1)
위의 내용이 인쇄 2
됩니다.
목록의 구조, T1 (단순히 목록을 포함하고 한 수준 만 포함)을 알고 있다면 Python 2 에서이 작업을 수행 할 수 있습니다.
T2 = [map(int, x) for x in T1]
파이썬 3에서 :
T2 = [list(map(int, x)) for x in T1]
답변
목록 이해 로이 작업을 수행 할 수 있습니다.
T2 = [[int(column) for column in row] for row in T1]
내부 목록 이해 ( [int(column) for column in row]
) list
는 int
의 int
10 진수 문자열과 같은 일련의 사용 가능한 객체로부터의를 row
만듭니다. 외부 목록 이해 ( [... for row in T1])
)는의 각 항목에 적용된 내부 목록 이해 결과 목록을 작성합니다 T1
.
행에 변환 할 수없는 객체가 포함 된 행이 있으면 코드 스 니펫이 실패합니다. int
. 10 진이 아닌 문자열을 포함하는 행을 처리하려면 더 똑똑한 기능이 필요합니다.
행의 구조를 알고 있으면 내부 목록 이해를 행의 함수 호출로 바꿀 수 있습니다. 예 :
T2 = [parse_a_row_of_T1(row) for row in T1]
답변
오히려 이해력있는 목록 만 사용하는 것이 좋습니다.
[[int(y) for y in x] for x in T1]
답변
int( )
put 대신 put 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())
이것은 실제 숫자 만 산출합니다. 직접 목록 이해를 사용하지 않는 이유는 목록 이해가 내부 변수를 누출하기 때문입니다.
답변
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
답변
이 시도.
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가 숫자이므로 IDLE True로 인쇄해야합니다.
y_test = is_number(y)
print(y_test)
y는 숫자가 아니기 때문에 IDLE False로 인쇄해야합니다.