两个字符串列表中的列表组合

Pra*_*dam 5 python list python-3.x

我有两个列表,我需要从这些列表中组合字符串,我已经尝试过,但我认为它对于较大的列表来说效率不高.

data = ['keywords', 'testcases']
data_combination = ['data', 'index']
final_list = []
for val in data:
    for comb in range(len(data_combination)):
        if comb == 1:
            final_list.append([val]  + data_combination)
        else:
            final_list.append([val, data_combination[comb]])
Run Code Online (Sandbox Code Playgroud)

我的输出是:

 [['keywords', 'data'],
 ['keywords', 'data', 'index'],
 ['testcases', 'data'],
 ['testcases', 'data', 'index']]
Run Code Online (Sandbox Code Playgroud)

有没有更多的pythonic方式来实现它?

jpp*_*jpp 7

列表理解是一种方式."Pythonic"是主观的,我不会声称这是最可读或最理想的方法.

data = ['keywords', 'testcases']
data_combination = ['data', 'index']

res = [[i] + data_combination[0:j] for i in data \
       for j in range(1, len(data_combination)+1)]

# [['keywords', 'data'],
#  ['keywords', 'data', 'index'],
#  ['testcases', 'data'],
#  ['testcases', 'data', 'index']]
Run Code Online (Sandbox Code Playgroud)

  • 这比OP的解决方案更有效吗?只是好奇. (2认同)