Python:将列表中的整数合并为一个数字?
假设我有几个整数的列表:
x = [['48', '5', '0'], ['77', '56', '0'],
['23', '76', '34', '0']]
我想把这个列表转换成一个单一的数字,但这个数字的类型仍然是整数,也就是说:
4850775602376340
我一直在用这段代码来完成这个过程:
num = int(''.join(map(str,x)))
但是我总是遇到值错误。
另外,如果我的列表里有负整数,我该如何把它们转换成绝对值?然后再转换成一个单一的数字呢?
x2 = [['48', '-5', '0'], ['77', '56', '0'], ['23', '76', '-34', '0']]
x2 = 4850775602376340
提前谢谢你。
7 个回答
6
在编程中,有时候我们需要处理一些数据,这些数据可能来自不同的地方,比如用户输入、文件或者网络请求。为了让程序能够理解这些数据,我们需要将它们转换成程序可以使用的格式。
比如说,如果我们从一个网页上获取了一些信息,这些信息可能是以文本的形式存在的。我们需要把这些文本解析成程序能理解的结构,比如列表或者字典。这样,程序才能更方便地使用这些数据。
在这个过程中,我们可能会用到一些工具或者库,这些工具可以帮助我们更轻松地完成数据的转换和处理。使用这些工具,就像是用一个强大的助手来帮我们完成繁琐的工作,让我们可以把精力集中在更重要的事情上。
总之,数据处理是编程中一个非常重要的部分,掌握了这项技能,我们就能更好地与各种数据打交道,让我们的程序变得更加智能和高效。
>>> int(''.join(reduce(lambda a, b: a + b, x)))
4850775602376340
6
我会使用 itertools.chain.from_iterable
来实现这个功能(这个在 Python 2.6 版本中新增的)
示例代码:
import itertools
x = [['48', '5', '0'], ['77', '56', '0'], ['23', '76', '34', '0']]
print int(''.join(itertools.chain.from_iterable(x)))
2
这是一种列表的列表,也就是说里面的每个元素又是一个列表。
num = int(''.join(''.join(l) for l in lists))
或者说
def flatten( nested ):
for inner in nested:
for x in inner:
yield x
num = ''.join(flatten(lists))