Two lists: Combine on values of the other list

Question:

I have the follow two lists:

1: ['GL50IILW', 'GL50IILW', 'NLR1R1RXCH', 'NNH0NNB7', 'QB2XP6MCH', 'QB2XP6MCH', 'KLEESZA1CH', 'KLEESZA1CH', 'UL50IALW', 'UL50IALW', 'UL50IALW', 'BHFFZA', 'BHFFZA', 'BHFFZA']
2: [2, 2, 2, 2, 3, 3]

I would like to combine the first list with the second for an output of:

['GL50IILW,GL50IILW','NLR1R1RXCH,NLR1R1RXCH','QB2XP6MCH,QB2XP6MCH','KLEESZA1CH,KLEESZA1CH','UL50IALW,UL50IALW,UL50IALW','BHFFZA,BHFFZA,BHFFZA']

List 1’s values gets combined on Lists 2 index value.

Asked By: Duvan Smuts

||

Answers:

Try:

l1 = [
    "GL50IILW",
    "GL50IILW",
    "NLR1R1RXCH",
    "NNH0NNB7",
    "QB2XP6MCH",
    "QB2XP6MCH",
    "KLEESZA1CH",
    "KLEESZA1CH",
    "UL50IALW",
    "UL50IALW",
    "UL50IALW",
    "BHFFZA",
    "BHFFZA",
    "BHFFZA",
]
l2 = [2, 2, 2, 2, 3, 3]

i = iter(l1)
out = [",".join(next(i) for _ in range(v)) for v in l2]

print(out)

Prints:

[
    "GL50IILW,GL50IILW",
    "NNH0NNB7,NLR1R1RXCH",
    "QB2XP6MCH,QB2XP6MCH",
    "KLEESZA1CH,KLEESZA1CH",
    "UL50IALW,UL50IALW,UL50IALW",
    "BHFFZA,BHFFZA,BHFFZA",
]
Answered By: Andrej Kesely
Categories: questions Tags: ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.