gpt4 book ai didi

python - 子列表到编号

转载 作者:太空宇宙 更新时间:2023-11-04 07:34:38 24 4
gpt4 key购买 nike

我正在研究我发现的一个有趣问题的解决方案。我的代码给出了一堆子列表,比如 (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))

关于python - 子列表到编号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39046121/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com