4 回答

TA貢獻1765條經驗 獲得超5個贊
因為字符串的乘法不會返回您所期望的內容,它將字符串乘以一個更長的字符串,您最好使用 @deadshot 建議的一段代碼:
def inventory(data): return [key for key, val in data.items() for i in range(val)]
輸出將如您所期望的那樣......

TA貢獻1799條經驗 獲得超8個贊
使用以下代碼。
dic = {'coca-cola':3, 'fanta':2}
def inventory(data):
lis = []
for key, val in data.items():
for item in range(0,val):
lis.append(key)
return lis

TA貢獻1798條經驗 獲得超3個贊
將 a 乘以stran int(如您最初的嘗試)只會返回str原始 的重復項str。例如3 * 'hi' = 'hihihi'。
相反,您想要返回一個,list其中每個:對中的每個存儲次數(shù)。下面的理解就是這樣做的。keydictvalkeyvaluedictlist
解決方案
def inventory(data):
return [key for key, val in data.items() for i in range(val)]
dic = {'coca-cola':3, 'fanta':2}
print(inventory(dic))
輸出
['coca-cola', 'coca-cola', 'coca-cola', 'fanta', 'fanta']

TA貢獻1806條經驗 獲得超5個贊
您好,如果您想解決您的問題,我發(fā)現(xiàn)了這個:
dic = {'coca-cola':3, 'fanta':2}
def inventory(data):
lis = []
lis = [[key]* val for key, val in data.items()]
return lis
print (inventory(dic))
你會得到這個:
[['coca-cola', 'coca-cola', 'coca-cola'], ['fanta', 'fanta']]
添加回答
舉報