Python Forum
How to discard list repeat values
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
How to discard list repeat values
#1
Dears;

In the bellow list there repeats values in the last indice:

I need discard the the key and the value (all) if the value is repeated:
Exemple: list[0][2] is 3585 and list[4][2] are the same!!!


 list = [['seg', 'João', 3585], ['qui', 'João', 3847], ['seg', 'João', 3847], ['qua', 'João', 3913], ['qua', 'João', 3585]]
Reply
#2
Let's make the terminology right.
There are no repeating elements in this list. It's a list of lists. There are repeating elements in the list elements (i.e. in the sublists). Then this is not a mapping like dict. There are no key value pairs.
Finally - show what expected output is and what have you tried so far.
If you can't explain it to a six year old, you don't understand it yourself, Albert Einstein
How to Ask Questions The Smart Way: link and another link
Create MCV example
Debug small programs

Reply
#3
(Dec-27-2020, 08:17 PM)buran Wrote: Let's make the terminology right.
There are no repeating elements in this list. It's a list of lists. There are repeating elements in the list elements (i.e. in the sublists). Then this is not a mapping like dict. There are no key value pairs.
Finally - show what expected output is and what have you tried so far.

Discar the repeated element in sub list[4]

1
list = [['seg', 'João', 3585], ['qui', 'João', 3847], ['seg', 'João', 3847], ['qua', 'João', 3913], ['qua', 'João', 3585]]
1
Output:
list = [['seg', 'João', 3585], ['qui', 'João', 3847], ['seg', 'João', 3847], ['qua', 'João', 3913]]
Reply
#4
it's still unclear
why do you remove the last element (presumably from your first post - because of repeating 3585) and yet preserve repeating 3847
If you can't explain it to a six year old, you don't understand it yourself, Albert Einstein
How to Ask Questions The Smart Way: link and another link
Create MCV example
Debug small programs

Reply
#5
(Dec-27-2020, 08:27 PM)buran Wrote: it's still unclear
why do you remove the last element (presumably from your first post - because of repeating 3585) and yet preserve repeating 3847

sorry..... it´s will be removed too..but lets keep one repeat.....

list = [['seg', 'João', 3585], ['qui', 'João', 3850], ['seg', 'João', 3847], ['qua', 'João', 3913], ['qua', 'João', 3585]]
Output:
list = [['seg', 'João', 3585], ['qui', 'João', 3847], ['seg', 'João', 3847], ['qua', 'João', 3913]]
Reply
#6
Don't use list as name.

>>> list('abc')
['a', 'b', 'c']
>>> list = ['a', 'b', 'c']
>>> list('abc')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'list' object is not callable
>>> list
['a', 'b', 'c']
akanowhere likes this post
I'm not 'in'-sane. Indeed, I am so far 'out' of sane that you appear a tiny blip on the distant coast of sanity. Bucky Katt, Get Fuzzy

Da Bishop: There's a dead bishop on the landing. I don't know who keeps bringing them in here. ....but society is to blame.
Reply
#7
# use set to get rid of duplicates like this

numbers = [1, 2, 3, 1, 2, 3, 4, 1]
unique_numbers = set(numbers)

# this works great: splat it!

numbers = [1, 2, 3, 1, 2, 3, 4, 1]
unique_numbers2 = {*numbers}

# you can't do this, because a list can't be a member of a set

numbers = [1, 2, 3, 1, 2, 3, 4, 1]
unique_numbers = {numbers}

# to your problem

mylist = [['seg', 'João', 3585], ['qui', 'João', 3847], ['seg', 'João', 3847], ['qua', 'João', 3913], ['qua', 'João', 3585]]

# an empty set

no_repeats = set()

# add the contents of the sub-lists to no_repeats

for item in mylist:
    aset = set(item)
    no_repeats.update(aset)

# this returns: {3585, 3847, 3913, 'seg', 'qui', 'João', 'qua'}
# if you need a list: result = list(no_repeats)
# if you need a dictionary from this list, check out your last post
Reply
#8
(Dec-28-2020, 04:56 AM)perfringo Wrote: Don't use list as name.

>>> list('abc')
['a', 'b', 'c']
>>> list = ['a', 'b', 'c']
>>> list('abc')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'list' object is not callable
>>> list
['a', 'b', 'c']

Tks a lot i was wrote lista...it was on portugues,,,when I tranlate I forgot that list is a reserved word....
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  Copying the order of another list with identical values gohanhango 7 1,060 Nov-29-2023, 09:17 PM
Last Post: Pedroski55
  Search Excel File with a list of values huzzug 4 1,147 Nov-03-2023, 05:35 PM
Last Post: huzzug
  Comparing List values to get indexes Edward_ 7 1,081 Jun-09-2023, 04:57 PM
Last Post: deanhystad
  Why do I have to repeat items in list slices in order to make this work? Pythonica 7 1,256 May-22-2023, 10:39 PM
Last Post: ICanIBB
  Adding values with reduce() function from the list of tuples kinimod 10 2,512 Jan-24-2023, 08:22 AM
Last Post: perfringo
  user input values into list of lists tauros73 3 1,023 Dec-29-2022, 05:54 PM
Last Post: deanhystad
  Repeat request by else stsxbel 2 1,149 Jul-30-2022, 03:34 PM
Last Post: stsxbel
  get out of while loop and stop repeat Frankduc 11 2,866 Apr-26-2022, 10:09 PM
Last Post: deanhystad
  AttributeError: 'list' object has no attribute 'values' ilknurg 4 14,770 Jan-19-2022, 08:33 AM
Last Post: menator01
  Avoid multiple repeat in indent Frankduc 8 2,789 Jan-18-2022, 05:46 PM
Last Post: Frankduc

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020