簡體   English   中英

兩個字符串列表中的列表組合

[英]Combination of lists from two lists of strings

我有兩個列表,我需要從這些列表中組合字符串,我已經嘗試過,但我認為它對於較大的列表來說效率不高。

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]])

我的輸出是:

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

有沒有更多的pythonic方式來實現它?

列表理解是一種方式。 “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']]

可能更加Pythonic:

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

[[x] + data_combination[:i] for x in data for i, _ in enumerate(data_combination, 1)]

產量

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM