[Tutor] Printing two elements in a list

Kent Johnson kent37 at tds.net
Tue Dec 7 16:59:53 CET 2004


kumar s wrote:
> Dear group, 
>  I have two lists names x and seq. 
> 
> I am trying to find element of x in element of seq. I
> find them. However, I want to print element in seq
> that contains element of x and also the next element
> in seq. 
> 
> 
> So I tried this piece of code and get and error that
> str and int cannot be concatenated
> 
>>>>for ele1 in x:
> 
> 	for ele2 in seq:
> 		if ele1 in ele2:
> 			print (seq[ele1+1])

You are confusing the elements themselves with their indices. The problem here is that ele1 is a 
string - an element of x - not a number, which is what you need for an index.

>>>>for ele1 in x:
> 
> 	for ele2 in seq:
> 		if ele2 in range(len(seq)):
> 			if ele1 in ele2:
> 				print seq[ele2+1]

Now ele2 is a number, so 'if ele1 in ele2' is never true.

> 3. TRIAL 3:
> I just asked to print the element in seq that matched
> element 1 in X.  It prints only that element, however
> I want to print the next element too and I cannot get
> it. 
> 
>>>>for ele1 in x:
> 
> 	for ele2 in seq:
> 		if ele1 in ele2:
> 			print ele2

The enumerate function is useful here. enumerate(seq) returns a sequence of (index, element) pairs. 
So you could write

for ele1 in x:
     for index, ele2 in enumerate(seq):
         if ele1 in ele2:
             print ele2
             print seq[index+1]

Kent


More information about the Tutor mailing list