我有一个包含字符串的元组的元组:

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]]

相关:

转换 str -> int 转换列表[str] ->列表[int]


当前回答

我想分享一个可用的选项,但这里似乎还没有提到:

rumpy.random.permutation(x)

将生成数组x的随机排列。这并不完全是您所要求的,但它是类似问题的潜在解决方案。

其他回答

你可以这样做:

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)  

使用列表推导式:

t2 = [map(int, list(l)) for l in t1]

不要使用int(),而是使用float(),这样可以同时使用小数和整数。

Python内置了函数int(string)和可选参数基。

如果你的字符串包含一个Integer值,它会将其转换为相应的Integer值。 然而,如果你有小数作为字符串,你将需要float()来转换它。

用法:

a = '22'
b = int(a)

and

if a = '22.22'
b = int(a) '''will give error, invalid literal for int().'''
b = float(a) '''will convert the string.'''

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]