How can I make my code be a set?

前端 未结 3 723
Happy的楠姐
Happy的楠姐 2021-01-20 04:26

I have a little code that takes a list of objects, and only outputs the items in the list that are unique.

This is my code

def only_once(a):
    retu         


        
3条回答
  •  独厮守ぢ
    2021-01-20 04:52

    [I'm assuming that you're also user1744238 and user1744316 -- please pick a username and stick to it, that way it's easier to check to see what variants of a question you've asked and what you've already tried.]

    One set-based approach is to use two sets as a counter. You only care about whether you've seen something once or more than once. For example, here's an easy-to-explain approach:

    1. Make an empty set for once and more.
    2. Loop over every element of your list, and:
      1. If you haven't seen it before, add it to once.
      2. If you've seen it once, remove it from once and add it to more.
    3. Now you know what elements you've seen exactly once, in the set once.
    4. Loop over the elements of the list, and if you've seen it once, add it to the output list, and remove it from the once set so you don't output the same element twice.

    This gives me:

    In [49]: f([1,4,6,7,3,2,4,5,7,5,6])
    Out[49]: [1, 3, 2]
    

提交回复
热议问题