我正在研究发现的一个有趣问题的解决方案。我拥有的代码提供了一堆子列表,例如(1、2、3、0、0)。有没有一种方法可以将该子列表转换为数字12300并将其附加到新列表中perm2
?我将不得不对许多子列表执行此操作,因此最好将其作为一个我可以在整个列表上运行的函数(即,它会遍历列表,对每个数字进行转换,然后将每个新数字附加到新列表,尽管旧列表将保持不变)。
到目前为止,我已经有了代码
import itertools
digits = [1,2,3,0,0]
perm = list(itertools.permutations(digits))
perm2 = []
print perm
def lst_var (lst):
for i in lst:
litem = lst[i]
#conversion takes place
perm2.append(v)
lst_var(perm)
但是我真的不知道如何进行转换,而且在任何地方都找不到解决方案。任何帮助,将不胜感激。
谢谢!
这是一个从数字列表中创建整数的函数。此函数的优点是它不会将整数列表转换为字符串列表,这是一项相当昂贵的操作:
def list_to_int(ls):
num = 0
for digit in ls:
num *= 10
num += digit
return num
应用于您的示例:
list_to_int([1,2,3,0,0])
12300
为了将其应用于子列表列表,您可以使用列表理解功能,也可以使用我个人更喜欢的方法map
:
sublists = [[7, 6, 6], [5, 7, 6], [9, 0, 9, 0], [8, 9, 5, 7, 8, 4]]
map(list_to_int, sublists)
[766,576,9090,895784]
因此,遵循该模型,您的代码最终将看起来像:
digits = [1,2,3,0,0]
perm = map(list_to_int, itertools.permutations(digits))
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句