3 回答

TA貢獻(xiàn)1788條經(jīng)驗(yàn) 獲得超4個(gè)贊
您可以通過(guò)以下方式修改最終輸出:
x = [{'qns': ' x '.join(map(str, d['qns'])), 'ans': d['ans']} for d in x]
如果您想從頭開(kāi)始構(gòu)建正確的輸出,只需將最后一行代碼替換為:
x = [{'qns': ' x '.join(map(str, f)) , 'ans': c} for f, c in zip(input_list, list_product_num)]

TA貢獻(xiàn)2021條經(jīng)驗(yàn) 獲得超8個(gè)贊
您正在尋找名為 的字符串的內(nèi)置方法join。 " x ".join(f)但不起作用,因?yàn)榱斜碇械捻?xiàng)目f不是strings。為了解決這個(gè)問(wèn)題,我們可以將列表中的每個(gè)項(xiàng)目轉(zhuǎn)換為具有列表理解的字符串[str(n) for n in f]:
將其放在一起作為您的示例,我們可以替換'qns': f為'qns': ' x '.join([str(n) for n in f])
您沒(méi)有為輸入列表提供值,但我猜您唯一的輸入是包含數(shù)字的列表列表。我冒昧地為您創(chuàng)建了一個(gè)緊湊的示例
from functools import reduce
new_list = [[1, 3, 3], [2, 5, -1], [3, 2], [4, 5, 3], [0, 23], [1, 2, 3, 4]]
print([{"qns": " x ".join(str(x) for x in l), "ans": reduce((lambda x, y: x * y), l)} for l in new_list])
>>> [{'qns': '1 x 3 x 3', 'ans': 9}, {'qns': '2 x 5 x -1', 'ans': -10}, {'qns': '3 x 2', 'ans': 6}, {'qns': '4 x 5 x 3', 'ans': 60}, {'qns': '0 x 23', 'ans': 0}, {'qns': '1 x 2 x 3 x 4', 'ans': 24}]

TA貢獻(xiàn)1744條經(jīng)驗(yàn) 獲得超4個(gè)贊
替換f
為以下內(nèi)容:
' x '.join([str(num) for num in f])
結(jié)果會(huì)是這樣的:
x = [{'qns': ' x '.join([str(num) for num in f]) , 'ans': c} for f, c in zip(input_list, list_product_num)]
添加回答
舉報(bào)