ბარდცი, მეზარება. აქვე ვიკითხავ ერთს.
a = [{'x'=1, 'y'=3'}, {'x'=1, 'y'=2'}, {'x'=1, 'y'=4'}]
def dedup(items, key=None):
unique = set()
for item in items:
val = item if key is None else key(item)
if val not in seen:
yield item
unique.add(val)
list(dedup(a,key= lambda q: (q['x'])))
ეს კოდი ადვილად აღმქადია მარტივი კოდია თქვენი აზრით?
ანუ for ლუპში ყველა ელემენტი გაივლის. თითოეული ელემენტი სეტში ვარდება და dupე-ბს აჯმევინებს. რაც მოხვდება val-ში მეორედ აღარ გაივლის yield-ს if ქონდიშონალის მეშვეობით იფილტრება.
ლამბდაც მეტნაკლებად გასაგებია. აი Key როგორ უნდა იყოს None ეგ ვერ გავიგე. ვინმე ამიხსნით? რა შემთხვევაში იქნება none თუ ფუნქციას key= არ მივაწოდე? მარტო keyს მიხედვით გახდის უნიკალურს და არა x-ის value-თი?
ვაბშე არაა დამწყებისთვის ეს წიგნი. იმედია გასაგებად ვიკითხე
This post has been edited by nv86 on 20 Oct 2016, 04:38