Skip to content
Advertisement

How to get a value of list from for loop in python?

I have list :

 l = ['dataset/Frames_Sentence_Level/are you free today/5/free (3) 22.jpg','dataset/Frames_Sentence_Level/are you free today/6/free (3) 24.jpg','dataset/Frames_Sentence_Level/are you free today/7/free (3) 23.jpg']

Here I need output as the list consists of 5,6,7 from the list, that is

[5,6,7]

So for that I tried like below,

s= []
for i in l:  
  e = i.split('/')`
  s = e[3]
print(s)

when I print s inside the for loop, I am getting the output but if I print outside the loop the output is just 7. Please help me out

Advertisement

Answer

You can do this using a list comprehension and get strings…

l = ['dataset/Frames_Sentence_Level/are you free today/5/free (3) 22.jpg','dataset/Frames_Sentence_Level/are you free today/6/free (3) 24.jpg','dataset/Frames_Sentence_Level/are you free today/7/free (3) 23.jpg']
out_lst = [fname.split("/")[3] for fname in l]
print(out_lst)

# Output: [‘5’, ‘6’, ‘7’]

Or get integers…

l = ['dataset/Frames_Sentence_Level/are you free today/5/free (3) 22.jpg','dataset/Frames_Sentence_Level/are you free today/6/free (3) 24.jpg','dataset/Frames_Sentence_Level/are you free today/7/free (3) 23.jpg']
out_lst = [int(fname.split("/")[3]) 
           for fname in l]
print(out_lst)

# Output: [5, 6, 7]

I split the list comprehension across lines on the second one because we are doing a lot with the value. Seemed more clear to read.

User contributions licensed under: CC BY-SA
3 People found this is helpful
Advertisement