472,331 Members | 1,758 Online

# common elements between list of lists and lists

Hello,

I am a beginner in python.
following program prints the second element in list of lists 4 for the
first elements in list 4 that are common with the elements in list 5
list4 = [['1', 'a'],['4', 'd'],['8', 'g']]
list5 = ['1', '2', '3']

for j in list4:
for k in list5:
if j[0] == k:
print j[1]

Result: a

I would like to do the same thing starting with following lists, where
the numbers in list 5 are without ''. Is there a way to convert
integers in a list to integers in '' ? This is based on a situation
where I want to find common numbers between a list and a list of lists
where the numbers in the list are without '' and the numbers in the
list of lists are with ''
list4 = [['1', 'a'],['4', 'd'],['8', 'g']]
list5 = [1, 2, 3]

This might be a stupid question, but anyway, thanks for your answer
It is not my first post on this site. In some way it is not possible
to react on the messages that I receive to thank the persons that
react. Anyway, thanks a lot
Jul 17 '08 #1
2 3204
>>list4 = [['1', 'a'],['4', 'd'],['8', 'g']]
>>list5 = [1, 2, 3]
set5 = set(list5)
[x for n, x in list4 if int(n) in set5]
['a']

Jul 17 '08 #2
On Jul 17, 4:30 pm, antar2 <desoth...@yahoo.comwrote:
Hello,

I am a beginner in python.
following program prints the second element in list of lists 4 for the
first elements in list 4 that are common with the elements in list 5

list4 = [['1', 'a'],['4', 'd'],['8', 'g']]
list5 = ['1', '2', '3']

for j in list4:
for k in list5:
if j[0] == k:
print j[1]

Result: a

I would like to do the same thing starting with following lists, where
the numbers in list 5 are without ''. Is there a way to convert
integers in a list to integers in '' ? This is based on a situation
where I want to find common numbers between a list and a list of lists
where the numbers in the list are without '' and the numbers in the
list of lists are with ''

list4 = [['1', 'a'],['4', 'd'],['8', 'g']]
list5 = [1, 2, 3]

This might be a stupid question, but anyway, thanks for your answer
It is not my first post on this site. In some way it is not possible
to react on the messages that I receive to thank the persons that
react. Anyway, thanks a lot
By "integer without ''" you mean integers not embraced by single
quotes, right?

Actually, '1' is a string, not an integer. If you want to normalize
the first elements of all the lists in list4, just use int() to
convert them.

That is:

list4 = [['1', 'a'],['4', 'd'],['8', 'g']]
list5 = ['1', '2', '3']

set5 = set(map(int, list5))
list4 = [[int(i[0]), i[1]] for i in list4]

for j in list4:
if j[0] in set5: print j[1]

You can have a try :)
Jul 17 '08 #3

This thread has been closed and replies have been disabled. Please start a new discussion.

### Similar topics

 10 by: Matthew Sims | last post by: Python Newbie here. This is my first time learning object-oriented programming and trying to break out of the usual Korn/Perl/PHP style of... 8 by: Generic Usenet Account | last post by: To settle the dispute regarding what happens when an "erase" method is invoked on an STL container (i.e. whether the element is merely removed from... 34 by: Adam Hartshorne | last post by: Hi All, I have the following problem, and I would be extremely grateful if somebody would be kind enough to suggest an efficient solution to it.... 9 by: john woo | last post by: Hi Please see the following simple script:

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.