如何在Python中将字符串转换为整数?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (10)
  • 关注 (0)
  • 查看 (572)

我有一个来自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

如果你知道List的结构t1,你可以在Python 2中这样做:

T2 = [map(int, x) for x in T1]

在Python 3中:

T2 = [list(map(int, x)) for x in T1]
用户回答回答于

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)
用户回答回答于

在Python3.5.1中,类似这样的工作:

c = input('Enter number:')
print (int(float(c)))
print (round(float(c)))

Enter number:  4.7
4
5
用户回答回答于

使用comprehensions:

t2 = [map(int, list(l)) for l in t1]
用户回答回答于

试试这个

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)

它应该打印到空闲的True,因为x是一个数字。

y_test = is_number(y)

print(y_test)

它应该打印到IDLE False,因为y在一个数字中。

用户回答回答于
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 
用户回答回答于

而不是把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())

这只产生实际数字。

用户回答回答于

使用理解列表:

[[int(y) for y in x] for x in T1]
用户回答回答于

你可以通过理解列表来完成这一任务:

T2 = [[int(column) for column in row] for row in T1

例如

T2 = [parse_a_row_of_T1(row) for row in T1]

扫码关注云+社区

领取腾讯云代金券