从Python中的字符串列表中获取连接字符串

Mar*_*tin 11 python

我有一个列表列表和一个像这样的分隔符字符串:

lists = [
    ['a', 'b'],
    [1, 2],
    ['i', 'ii'],
]
separator = '-'
Run Code Online (Sandbox Code Playgroud)

结果我想要一个字符串列表与子列表中的字符串中的分隔符字符串组合:

result = [
    'a-1-i', 
    'a-1-ii', 
    'a-2-i', 
    'a-2-ii',
    'b-1-i', 
    'b-1-ii', 
    'b-2-i', 
    'b-2-ii',
]
Run Code Online (Sandbox Code Playgroud)

结果中的顺序无关紧要.

我怎样才能做到这一点?

jpm*_*jpm 16

from itertools import product
result = [separator.join(map(str,x)) for x in product(*lists)]
Run Code Online (Sandbox Code Playgroud)

itertools.product返回一个迭代器,它生成所提供的iterables的笛卡尔积.我们需要对map str结果元组进行处理,因为有些值是整数.最后,我们可以加入字符串化的元组并将整个内容抛出一个列表解析(或生成器表达式,如果处理大型数据集,你只需要它进行迭代).

  • +1 很好的答案伙计 - 我想打印它并将其放在我的冰箱上。 (2认同)