亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

創建具有指定長度的列表并組合其他列表

創建具有指定長度的列表并組合其他列表

皈依舞 2022-01-11 20:00:37
我正在嘗試生成一個組合其他兩個列表元素的列表,一個是值,一個不是。我嘗試過使用 join 函數和 append 函數在某個階段將兩個元素組合在一起并使用兩個單獨的列表。為了將 list d 的長度與 list a 相匹配,我使用了一個 while 循環作為計數器。a=7*[1]b=[1,2,3,4,5]c=['a','b','c']d=[]我試圖達到的結果是:列表 d 成為列表 a 的長度 & 是列表 b 和列表 c 的組合d=[1a,1b,1c,2a,2b,2c,3a]
查看完整描述

3 回答

?
偶然的你

TA貢獻1841條經驗 獲得超3個贊

您可以通過列表理解來做到這一點:


d = [str(v)+L for v in b*len(a) for L in c][:len(a)]

或者,如果您被允許使用 itertools:


from itertools import cycle


cycleA = cycle(str(v)+L for v in b for L in c)

d = [ next(cycleA) for _ in a ] 


查看完整回答
反對 回復 2022-01-11
?
藍山帝景

TA貢獻1843條經驗 獲得超7個贊

現在可以想到一個樸素的解決方案


def create(bk, ck, len_required):

    dk = []

    for bitem in bk:

        for citem in ck:

            dk.append(str(bitem) + citem)

            if len(dk) == len_required:

                return dk



len_required = len(a)

b = [1, 2, 3, 4, 5]

c = ['a', 'b', 'c']

d = create(b, c, len_required)


查看完整回答
反對 回復 2022-01-11
?
慕田峪9158850

TA貢獻1794條經驗 獲得超8個贊

result = [str(b[int(i / len(c)) % len(b)]) + str(c[i % len(c)]) for i in range(len(a))]

這將 i 從 0 迭代到 len(a) 并在輸出中連接 b[int(i / len(c)) % len(b)] 和 c[i % len(c)]。


查看完整回答
反對 回復 2022-01-11
  • 3 回答
  • 0 關注
  • 176 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號