469,315 Members | 1,589 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 469,315 developers. It's quick & easy.

check if the values are prensent in a list of values

Hello All,

I will appreciate the help from the more skillfull pythonistas..

I have a small app that generates a sequence like

00341
01741
03254

This values I am putting in a list.

So I have a list = [00341,01741,03254]

after the programs find the sequence 03401 this sequence is "new" so
it appends on the list. But I want to avoid that as the values are
already on the first sequence of the list (00341).
If I try to use a "in" statement it will give false. as 00341 is
different from 00341 (but for my goal not..)
How can I check against this list and avoid to put "different"
sequences but same values?

as 34100 --dont append on the list
14300 ---dont append on the list
05321 --append to the list.

Am I doing some conceptual error using lists?
There is a better approach?

Thanks

Sep 9 '08 #1
3 1441
flit wrote:
Hello All,

I will appreciate the help from the more skillfull pythonistas..

I have a small app that generates a sequence like

00341
01741
03254
Consider using a dict with sorted tuple keys, eg

d = {}

for seq in ['00341','01741','03254']:
ky = list(seq)
ky.sort()
d[tuple(ky)] = None
then d.keys() are the unique combinations.

HTH,

Emile
>
This values I am putting in a list.

So I have a list = [00341,01741,03254]

after the programs find the sequence 03401 this sequence is "new" so
it appends on the list. But I want to avoid that as the values are
already on the first sequence of the list (00341).
If I try to use a "in" statement it will give false. as 00341 is
different from 00341 (but for my goal not..)
How can I check against this list and avoid to put "different"
sequences but same values?

as 34100 --dont append on the list
14300 ---dont append on the list
05321 --append to the list.

Am I doing some conceptual error using lists?
There is a better approach?

Thanks

--
http://mail.python.org/mailman/listinfo/python-list
Sep 9 '08 #2
Emile van Sebille wrote:
flit wrote:
>Hello All,

I will appreciate the help from the more skillfull pythonistas..

I have a small app that generates a sequence like

00341
01741
03254

Consider using a dict with sorted tuple keys, eg

d = {}

for seq in ['00341','01741','03254']:
ky = list(seq)
ky.sort()
d[tuple(ky)] = None
then d.keys() are the unique combinations.

HTH,

Emile
I'm not judging whether this is a good solution or not, but that's a
silly use of a dict. A set would be better.

s = set()
for seq in ['00341','01741','03254']:
s.add(tuple(sorted(ky)))

Then you just, well, access the set directly, instead of using d.keys()
or something.

(I also replaced the sorting with the sorted() function for brevity.
This all assumes you have at least Python 2.4...)
>This values I am putting in a list.

So I have a list = [00341,01741,03254]

after the programs find the sequence 03401 this sequence is "new" so
it appends on the list. But I want to avoid that as the values are
already on the first sequence of the list (00341).
If I try to use a "in" statement it will give false. as 00341 is
different from 00341 (but for my goal not..)
How can I check against this list and avoid to put "different"
sequences but same values?

as 34100 --dont append on the list
14300 ---dont append on the list
05321 --append to the list.

Am I doing some conceptual error using lists?
There is a better approach?

Thanks
--
Sep 9 '08 #3
On 9 set, 15:13, Bruno Desthuilliers
<bdesth.quelquech...@free.quelquepart.frwrote:
Matt Nordhoff a écrit :
(snip)
I'm not judging whether this is a good solution or not, but that's a
silly use of a dict.

Yeps, but a somewhat common one in code predating the apparition of sets
as builtin type.
Thanks for all contributions, sure I learn a lot with all samples.
Very good thread and answers.

Thank you all
Sep 9 '08 #4

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

13 posts views Thread by Adrian Parker | last post: by
reply views Thread by Alex82 | last post: by
5 posts views Thread by =?Utf-8?B?QnJlbmRlbiBCaXhsZXI=?= | last post: by
4 posts views Thread by giftson.john | last post: by
5 posts views Thread by Andrew Meador | last post: by
1 post views Thread by CARIGAR | last post: by
reply views Thread by suresh191 | last post: by
1 post views Thread by Geralt96 | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.