By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
459,365 Members | 1,390 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 459,365 IT Pros & Developers. It's quick & easy.

check if the values are prensent in a list of values

P: n/a
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
Share this Question
Share on Google+
3 Replies


P: n/a
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

P: n/a
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

P: n/a
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.