如何将列表列表中的所有字符串转换为整数?

新手上路,请多包涵

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

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

有关的:

原文由 elfuego1 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1k
2 个回答

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]

原文由 unwind 发布,翻译遵循 CC BY-SA 4.0 许可协议

您可以通过列表理解来做到这一点:

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

The inner list comprehension ( [int(column) for column in row] ) builds a list of int s from a sequence of int -able objects, like decimal strings,在 row 中。外部列表理解 ( [... for row in T1]) ) 构建应用于 T1 中每个项目的内部列表理解的结果列表。

如果任何行包含 int 无法转换的对象,代码片段将失败。如果要处理包含非十进制字符串的行,则需要更智能的函数。

如果您知道行的结构,则可以将内部列表理解替换为对行的函数的调用。例如。

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

原文由 Will Harris 发布,翻译遵循 CC BY-SA 2.5 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题