Hi there, I have a 2 lists.. for simplicities sake lets say the are:
l1 = [ 'abc' 'ghi' 'mno' ]
l2 = [ 'abc' 'def' 'ghi' 'jkl 'mno' 'pqr']
what I need to do is compare l1 against l2 and return the "position"
of where each object in l1 is in l2
ie: pos = 0, 2, 4
Thanks in advance, -h 12 5831
On 2007-06-22, hiro <Nu****@gmail.comwrote:
Hi there, I have a 2 lists.. for simplicities sake lets say the are:
l1 = [ 'abc' 'ghi' 'mno' ]
l2 = [ 'abc' 'def' 'ghi' 'jkl 'mno' 'pqr']
what I need to do is compare l1 against l2 and return the "position"
of where each object in l1 is in l2
ie: pos = 0, 2, 4
Thanks in advance, -h
Come, come! You can try harder than that.
--
Neil Cerutti
hiro <Nu****@gmail.comwrites:
what I need to do is compare l1 against l2 and return the "position"
of where each object in l1 is in l2
ie: pos = 0, 2, 4
Is it September already?
from itertools import izip
pos = map(dict(izip(l2, count())).__getitem__, l1)
Heh heh heh.
Paul Rubin wrote:
>
from itertools import izip
pos = map(dict(izip(l2, count())).__getitem__, l1)
or probably less efficiently ...
>>l1 = [ 'abc', 'ghi', 'mno' ] l2 = [ 'abc', 'def', 'ghi', 'jkl', 'mno', 'pqr'] pos = [ l2.index(i) for i in l1 ] print pos
[0, 2, 4]
Charles
On Jun 22, 1:46 am, Charles Sanders <C.delete_this.Sand...@BoM.GOv.AU>
wrote:
Paul Rubin wrote:
from itertools import izip
pos = map(dict(izip(l2, count())).__getitem__, l1)
or probably less efficiently ...
>>l1 = [ 'abc', 'ghi', 'mno' ]
>>l2 = [ 'abc', 'def', 'ghi', 'jkl', 'mno', 'pqr']
>>pos = [ l2.index(i) for i in l1 ]
>>print pos
[0, 2, 4]
Charles
Hey Guys thanks for the feedback and the suggestions.
Charles I got your implementation to work so many thanks for this.
this is what I had so far
for spam in l1:
for eggs in l2:
if spam == eggs:
print "kaka", spam, eggs
so its almost working just need the index, I'll
continue playing with the nested loop approach for a bit more.
Thanks once again guys
On Fri, 22 Jun 2007 03:11:16 +0000, hiro wrote:
Hi there, I have a 2 lists.. for simplicities sake lets say the are:
l1 = [ 'abc' 'ghi' 'mno' ]
l2 = [ 'abc' 'def' 'ghi' 'jkl 'mno' 'pqr']
what I need to do is compare l1 against l2 and return the "position" of
where each object in l1 is in l2
ie: pos = 0, 2, 4
Thanks for sharing. Did you have a question, or did you just want to tell
us what you were doing?
Thanks in advance, -h
My pleasure.
--
Steven.
On Jun 22, 2:16 am, hiro <Nun...@gmail.comwrote:
On Jun 22, 1:46 am, Charles Sanders <C.delete_this.Sand...@BoM.GOv.AU>
wrote:
Paul Rubin wrote:
from itertools import izip
pos = map(dict(izip(l2, count())).__getitem__, l1)
or probably less efficiently ...
>>l1 = [ 'abc', 'ghi', 'mno' ]
>>l2 = [ 'abc', 'def', 'ghi', 'jkl', 'mno', 'pqr']
>>pos = [ l2.index(i) for i in l1 ]
>>print pos
[0, 2, 4]
Charles
Hey Guys thanks for the feedback and the suggestions.
Charles I got your implementation to work so many thanks for this.
this is what I had so far
for spam in l1:
for eggs in l2:
if spam == eggs:
print "kaka", spam, eggs
so its almost working just need the index, I'll
continue playing with the nested loop approach for a bit more.
Thanks once again guys
Hi once again, Charles.. I have tried your approach in my data set l2
and it keeps crashing on me,
bare in mind that I have a little over 10 million objects in my list
(l2) and l1 contains around 4 thousand
objects.. (i have enough ram in my computer so memory is not a
problem)
python 2.5 (r25:51908, Sep 19 2006, 09:52:17) [MSC v.1310 32 bit
(Intel)] on win32
error is : ValueError: list.index(x): x not in list
when using Charles's
pos = [ l2.index(i) for i in l1 ]
print pos
does anybody know of if I have to many data points ? the nested for
loop approach seems to be working(still have get the index "position"
returned though)
Charles's approach works fine with less data.
Cheers, -d
In <11**********************@u2g2000hsc.googlegroups. com>, hiro wrote:
Hi once again, Charles.. I have tried your approach in my data set l2
and it keeps crashing on me,
bare in mind that I have a little over 10 million objects in my list
(l2) and l1 contains around 4 thousand
objects.. (i have enough ram in my computer so memory is not a
problem)
python 2.5 (r25:51908, Sep 19 2006, 09:52:17) [MSC v.1310 32 bit
(Intel)] on win32
error is : ValueError: list.index(x): x not in list
So you are saying you get this error with the value of `x` actually in the
list!? Somehow hard to believe.
Ciao,
Marc 'BlackJack' Rintsch
On Jun 22, 1:56 pm, Marc 'BlackJack' Rintsch <bj_...@gmx.netwrote:
In <1182534010.884992.119...@u2g2000hsc.googlegroups. com>, hiro wrote:
Hi once again, Charles.. I have tried your approach in my data set l2
and it keeps crashing on me,
bare in mind that I have a little over 10 million objects in my list
(l2) and l1 contains around 4 thousand
objects.. (i have enough ram in my computer so memory is not a
problem)
python 2.5 (r25:51908, Sep 19 2006, 09:52:17) [MSC v.1310 32 bit
(Intel)] on win32
error is : ValueError: list.index(x): x not in list
So you are saying you get this error with the value of `x` actually in the
list!? Somehow hard to believe.
Ciao,
Marc 'BlackJack' Rintsch
yes I do
On Jun 22, 1:58 pm, hiro <Nun...@gmail.comwrote:
On Jun 22, 1:56 pm, Marc 'BlackJack' Rintsch <bj_...@gmx.netwrote:
In <1182534010.884992.119...@u2g2000hsc.googlegroups. com>, hiro wrote:
Hi once again, Charles.. I have tried your approach in my data set l2
and it keeps crashing on me,
bare in mind that I have a little over 10 million objects in my list
(l2) and l1 contains around 4 thousand
objects.. (i have enough ram in my computer so memory is not a
problem)
python 2.5 (r25:51908, Sep 19 2006, 09:52:17) [MSC v.1310 32 bit
(Intel)] on win32
error is : ValueError: list.index(x): x not in list
So you are saying you get this error with the value of `x` actually in the
list!? Somehow hard to believe.
Ciao,
Marc 'BlackJack' Rintsch
yes I do
I doubled, trippled check my data already (even doing a search by hand
using vim) and the data is fine. Still looking into it though
On Jun 22, 2:00 pm, hiro <Nun...@gmail.comwrote:
On Jun 22, 1:58 pm, hiro <Nun...@gmail.comwrote:
On Jun 22, 1:56 pm, Marc 'BlackJack' Rintsch <bj_...@gmx.netwrote:
In <1182534010.884992.119...@u2g2000hsc.googlegroups. com>, hiro wrote:
Hi once again, Charles.. I have tried your approach in my data set l2
and it keeps crashing on me,
bare in mind that I have a little over 10 million objects in my list
(l2) and l1 contains around 4 thousand
objects.. (i have enough ram in my computer so memory is not a
problem)
python 2.5 (r25:51908, Sep 19 2006, 09:52:17) [MSC v.1310 32 bit
(Intel)] on win32
error is : ValueError: list.index(x): x not in list
So you are saying you get this error with the value of `x` actually in the
list!? Somehow hard to believe.
Ciao,
Marc 'BlackJack' Rintsch
yes I do
I doubled, trippled check my data already (even doing a search by hand
using vim) and the data is fine. Still looking into it though
hahaha, K found out what was wrong.. in the function computing
the data for l1 there was extra space was being put in.
ie:
l1 = [ 'abc ' 'ghi ' 'mno ' ]
and I didn't strip it properly after splitting it.. silly me,
well.. live and learn.. thanks guys
Cheers, -h
hiro wrote:
bare in mind that I have a little over 10 million objects in my list
(l2) and l1 contains around 4 thousand
objects.. (i have enough ram in my computer so memory is not a
problem)
Glad to see you solved the problem with the trailing space.
Just one minor point, I did say
or probably less efficiently ...
As far as i know, my suggestion's running time is
proportional to len(l1)*len(l2), which gets quite
big for your case where l1 and l2 are large lists.
If I understand how python dictionaries work, Paul Rubin's
suggestion
from itertools import izip, count
pos = map(dict(izip(l2, count())).__getitem__, l1)
or the (I think) approximately equivalent
from itertools import izip, count
d = dict(izip(l2,count()))
pos = [ d[i] for i in l1 ]
or the more memory intensive
d = dict(zip(l2,range(len(l2))))
pos = [ d[i] for i in l1 ]
should all take take running time proportional to
(len(l1)+len(l2))*log(len(l2))
For len(l1)=4,000 and len(l2)=10,000,000
Paul's suggestion is likely to take
about 1/100th of the time to run, ie
be about 100 times as fast. I was trying
to point out a somewhat clearer and simpler
(but slower) alternative.
Charles
Charles Sanders <C.*******************@BoM.GOv.AUwrites:
from itertools import izip, count
d = dict(izip(l2,count()))
pos = [ d[i] for i in l1 ]
or the more memory intensive
d = dict(zip(l2,range(len(l2))))
pos = [ d[i] for i in l1 ]
If you're itertools-phobic you could alternatively write
d = dict((x,i) for i,x in enumerate(l2))
pos = [ d[i] for i in l1 ]
dict access and update is supposed to take approximately constant time,
btw. They are implemented as hash tables. This thread has been closed and replies have been disabled. Please start a new discussion. Similar topics
by: Mark Bordner |
last post by:
Hi All,
Given the following XML, I've been trying to figure out what XPATH
expression will give me the "position" of a <lineitem> within the
<shipto> that is its grandparent.
To give you an...
|
by: nobody |
last post by:
hi there!
given
<!ELEMENT a (#PCDATA | x)*>
<!ELEMENT x (#PCDATA)>
how can I find out if x is "embedded" at the beginning
<a><x>xxx</x>aaa</a>
or at the end
<a>aaa<x>xxx</x></a>
or in the...
|
by: Luigi |
last post by:
I would know what "criteria" is used in box positioning with the
position property.
Here my tries (using IE and Opera):
I have a box with an absolute positioning (properties used: position,...
|
by: Jessard |
last post by:
Hi All,
I am writing a .NET app that accesses an access View. The view has a table
column called 'Position'. When i try and right an UpdateCommand string for
this using this column I am...
|
by: Ghyslaine Crespe |
last post by:
Hello,
In my script, the line
document.getElementById(id).style.background-position = "-200px -500px";
fails !
So, how can I change the background-position value ?
|
by: Giovanni Bassi |
last post by:
Hello All,
I have a class implementing IList and a global object of this class type.
I have two different form objects. One has a ListBox and the other has
ComboBox. Both of their datasources...
|
by: tschoepi |
last post by:
Hi there,
if I try to access a table named Position in an Access-Database via
OleDbDataAdapter I get an error. If I rename the table to e.g.
Positions it works.
Any idea how to solve this...
|
by: petermichaux |
last post by:
Hi,
I tried the following and everything worked fine.
element.style.position="relative";
Then I tried to make the CSS rule important and it didn't work. The
positioning was all wrong in...
|
by: vunet.us |
last post by:
Mozilla reported the fix to this bug: https://bugzilla.mozilla.org/show_bug.cgi?id=167801.
When input text field is located over div, the cursor cannot be seen
unless special CSS properties are...
|
by: CloudSolutions |
last post by:
Introduction:
For many beginners and individual users, requiring a credit card and email registration may pose a barrier when starting to use cloud servers. However, some cloud server providers now...
|
by: Faith0G |
last post by:
I am starting a new it consulting business and it's been a while since I setup a new website. Is wordpress still the best web based software for hosting a 5 page website? The webpages will be...
|
by: Charles Arthur |
last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
|
by: ryjfgjl |
last post by:
If we have dozens or hundreds of excel to import into the database, if we use the excel import function provided by database editors such as navicat, it will be extremely tedious and time-consuming...
|
by: ryjfgjl |
last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
|
by: BarryA |
last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
|
by: nemocccc |
last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
|
by: Sonnysonu |
last post by:
This is the data of csv file
1 2 3
1 2 3
1 2 3
1 2 3
2 3
2 3
3
the lengths should be different i have to store the data by column-wise with in the specific length.
suppose the i have to...
|
by: Hystou |
last post by:
There are some requirements for setting up RAID:
1. The motherboard and BIOS support RAID configuration.
2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
| |