iT邦幫忙

0

求Python高手幫忙解題(輸入資料整合成期望的輸出)

  • 分享至 

  • xImage

題目如下:

將下列輸入資料整合成期望的輸出結果。
輸入資料:

const userIds = [‘U01’, ‘U02’, ‘U03’] 
const orderIds = [‘T01’, ‘T02’, ‘T03, ‘T04’] 
const userOrders = [			
    { userId: ‘U01’, orderIds: [‘T01’, ‘T02’] },
 	{ userId: ‘U02’, orderIds: [] },
 	{ userId: ‘U03’, orderIds: [‘T03’] },
]
const userData = { ‘U01’: ‘Tom’, ‘U02’: ‘Sam’, ‘U03’: ‘John’ } 
const orderData = {						
‘T01’: { name: ‘A’, price: 499 }, 
‘T02’: { name: ‘B’, price: 599 },
‘T03’: { name: ‘C’, price: 699 }, 
‘T04’: { name: ‘D’, price: 799 }
} 
輸出結果:
const result = [ 
{
	user: { id: ‘U01’, name: ‘Tom’ }, 
orders: [{ id: ‘T01’, name: ‘A’, price: 499 },
{ id: ‘T02’, name: ‘B’, price: 599 }, 
],
},
…,
]

JS解
有找到JS的解法,求Python的解法,非常感謝!

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

1
camelcheng
iT邦新手 4 級 ‧ 2022-02-17 22:51:12
最佳解答
userIds = ['U01', 'U02', 'U03'] 
orderIds = ['T01', 'T02', 'T03', 'T04'] 
userOrders = [			
    { 'userId': 'U01', 'orderIds': ['T01', 'T02'] },
 	{ 'userId': 'U02', 'orderIds': [] },
 	{ 'userId': 'U03', 'orderIds': ['T03'] },
]
userData = { 'U01': 'Tom', 'U02': 'Sam', 'U03': 'John' } 
orderData = {						
'T01': { 'name': 'A', 'price': 499 }, 
'T02': { 'name': 'B', 'price': 599 },
'T03': { 'name': 'C', 'price': 699 }, 
'T04': { 'name': 'D', 'price': 799 }
} 
//以下為解法
result = []
for item in userOrders:
    order_list = []
    for i in item['orderIds']:
        order_list.append({'id':i, 'name':orderData[i]['name'], 'price':orderData[i]['price']})
    temp = {'user': {'id':item['userId'],'name':userData[item['userId']]},
            'orders': order_list}
    result.append(temp)
print(result)

https://ithelp.ithome.com.tw/upload/images/20220217/20146086poKX9hbhpY.png

這樣看看行不行

我要發表回答

立即登入回答