第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

填充列表列表以使其等于最大列表的大小

填充列表列表以使其等于最大列表的大小

慕后森 2023-03-30 17:20:21
我有一個(gè)句子列表列表,我想填充所有句子,使它們的長(zhǎng)度相同。我能夠做到這一點(diǎn),但我正在努力尋找最佳的做事方式和挑戰(zhàn)自己。max_length = max(len(sent) for sent in sents)list_length = len(sents)sents_padded = [[pad_token for i in range(max_length)] for j in range(list_length)]for i,sent in enumerate(sents):    sents_padded[i][0:len(sent)] = sent 我使用了輸入:sents = [["Hello","World"],["Where","are","you"],["I","am","doing","fine"]]pad_token = "Hi"我的方法是一種有效的方法還是有更好的方法?
查看完整描述

4 回答

?
MM們

TA貢獻(xiàn)1886條經(jīng)驗(yàn) 獲得超2個(gè)贊

這是在 itertools(在 python3 中)中提供的,用于迭代,帶有 zip_longest,您可以使用 zip(*) 正常反轉(zhuǎn)它,如果您更喜歡它而不是迭代器,則將其傳遞給列表。


import itertools

from pprint import pprint


sents = [["Hello","World"],["Where","are","you"],["I","am","doing","fine"]]

pad_token = "Hi"


padded = zip(*itertools.zip_longest(*sents, fillvalue=pad_token))

pprint (list(padded))

[['Hello', 'World', 'Hi', 'Hi'],

['Where', 'are', 'you', 'Hi'],

['I', 'am', 'doing', '美好的']]


查看完整回答
反對(duì) 回復(fù) 2023-03-30
?
蝴蝶不菲

TA貢獻(xiàn)1810條經(jīng)驗(yàn) 獲得超4個(gè)贊

以下是如何使用str.ljust()填充每個(gè)字符串,并使用max()keylen來查找填充每個(gè)字符串的數(shù)字:


lst = ['Hello World', 'Good day!', 'How are you?']


l = len(max(lst, key=len)) # The length of the longest sentence

lst = [s.ljust(l) for s in lst] # Pad each sentence with l


print(lst)

輸出:


['Hello World ',

 'Good day!   ',

 'How are you?']


查看完整回答
反對(duì) 回復(fù) 2023-03-30
?
波斯汪

TA貢獻(xiàn)1811條經(jīng)驗(yàn) 獲得超4個(gè)贊

假設(shè):


輸出應(yīng)與 OP 輸出相同(即每個(gè)子列表中的單詞數(shù)相同)。


輸入:


sents = [["Hello","World"],["Where","are","you"],["I","am","doing","fine"]]

pad_token = "Hi"

以下 1-liner 產(chǎn)生與 OP 代碼相同的輸出。


sents_padded = [sent + [pad_token]*(max_length - len(sent)) for sent in sents]


print(sents_padded)

# [['Hello', 'World', 'Hi', 'Hi'], ['Where', 'are', 'you', 'Hi'], ['I', 'am', 'doing', 'fine']


查看完整回答
反對(duì) 回復(fù) 2023-03-30
?
米脂

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超3個(gè)贊

當(dāng)我計(jì)時(shí)時(shí),這似乎更快:


maxi = 0

for sent in sents:

    if sent.__len__() > maxi:

        maxi = sent.__len__()

for sent in sents:

    while sent.__len__() < maxi:

        sent.append(pad_token)

print(sents)


查看完整回答
反對(duì) 回復(fù) 2023-03-30
  • 4 回答
  • 0 關(guān)注
  • 142 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)