gpt4 book ai didi

python - 如何在具有不同定位的列表中获取字符串组合?

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

我有一个这样的列表:

mylist = [ "abc", "def", "-" ]

我已经尝试并搜索了大量的组合,但没有一个接近它,预期的结果应该类似于这个(在不同位置组合的字符串组合):

[ "abc", "-abc", "abc-", "-abc-", "abcdef", "-abcdef", "abcdef-", 
"-abcdef-", "abc-def", "-abc-def-", "-abc-def", "abc-def-", "defabc",
"-defabc", "defabc-", "def-abc", "-def-abc", "def-abc-" ]

更新:

上面的例子是简化的,通常有 2 个列表。一个是常规字符串(abc、def、...),另一个包含特殊字符(.-_ 等)、(+可能是 resultList)。例如:

regularList =  [ "abc", "def", "ghi", ... ]
specialList = [ ".", "-" ,"_" , ",", ... ]
resultList = [ "abc", "def", "abc-", "-abc", "-abc-", ..., "-abc_def-", ... ]

字符串“.”、“-”、“_”、...(specialList)永远不应作为单个字符串出现在最终结果中(例如 [“-”、“.”、“abc”、“def", "abcdef", ... ])

我需要组合两个列表,但有一个特殊的异常(exception)(如我的原始帖子中所述),即“specialList”的字符需要位于常规字符串组合的开头、结尾和中间。

最终结果(如前所述)通常如下所示:

resultList = [ "abc", "def", "abc-", "-abc", "-abc-", "abc_", 
"_abc", "_abc_", "_abc-", "-abc_", ...,
"-abc_def-", "_abc-def_", "abc-def_", ... ]

旁注:
不确定这是否需要过多的处理能力/cpu。这就是为什么我尝试逐步遍历“specialList”以获得第一个组合(然后在文件系统上验证它并遍历下一个组合),如我的 orig 中所述。发表/评论,所以我删除了“specialList”以简化原稿中的问题。 post,但后来我意识到像“-abc_dev-”这样的组合不可能这样,所以我原来的方法/post 无论如何都不会像我想的那样工作。

最佳答案

除了连字符数 (-) 在您的问题中看似开放的问题外,您可以通过加入所有可能子集的所有可能排列来做到这一点,具体而言:

from itertools import chain, combinations, permutations

def powerset(s):
# https://stackoverflow.com/questions/7988695/getting-the-subsets-of-a-set-in-python
return chain.from_iterable(combinations(s, r) for r in range(len(s)+1))

>>> mylist = [ "abc", "def", "-" ]
>>> [''.join(x) for subset in powerset(mylist) for x in permutations(subset)]
['',
'abc',
'def',
'-',
'abcdef',
'defabc',
'abc-',
'-abc',
'def-',
'-def',
'abcdef-',
'abc-def',
'defabc-',
'def-abc',
'-abcdef',
'-defabc']

关于python - 如何在具有不同定位的列表中获取字符串组合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46017972/

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