それはあなたへの要求であるため、このポストは、あなたの質問にコメントの形でなければなりませんあなたのポストをもっと明確にするために。しかし、私は十分な評判を得ていないので、ここに現れます。
最初に、function sortedは、リスト、配列、および文字列をパラメータとしてiterableをとります。 ListData
は辞書です。したがって、データを適切な形式に変換する必要があります。
x[][ValidTill]
,x[][Amount]
およびそのpercentage
のパラメータは何ですか?たとえば、の合計を意味しますか?はいの場合、手順は以下のとおりです。
# python ver 3.5. Note that the below code need to be adjusted
# a little bit to be able to run on python 2.x.
import random
ListData = {
'AvailableOffers': {
'ValidTill': [random.randint(1,10) for i in range(100)],
'Amount': [random.randint(1,10) for i in range(100)]
}}
# Convert from dictionary to list
ListDataIter = list(zip(ListData['AvailableOffers']['ValidTill'], ListData['AvailableOffers']['Amount']))
# Now let have the percentage parameter inputted by users
FirstParam, SecondParam = 0.4, 0.6
# Sorting ListDataIter
sorted(ListDataIter, key=lambda x: x[0] * FirstParam + x[1] * SecondParam, reverse=True)[:10]
[(10, 10),
(10, 10),
(9, 10),
(9, 10),
(9, 10),
(10, 9),
(7, 10),
(7, 10),
(8, 9),
(9, 8)]
ソートでは正確に何を行いますか? – Lucas
ソートしてフィルタリングすることを意味しますか、ソートのしきい値となるパーセンテージですか? –
[:10]ステートメントが2つの条件でソートされているトップテンのみを返すことがわかるので、ユーザーが1つのパラメータで60%を必要とし、返す要素のうち6つを取るparamsと4もう片方に! – MUHAMMAD