简体   繁体   中英

How to ignore if a value is not present inside a list using python?

I have an error w.r.t list inside a list. I am trying to assign the elements to a variable. So whatever I insert in those list inside the list it will get assigned to those variables. Like show below

list = [[1, 2], [2, 3], [4, 5]]
car = list[0]
bike = list[1]
cycle = list[3]

Now, suppose I won't give a value for the 3rd list(like shown below). Then I will get an error:

list[[1, 2], [2, 3]]
car = list[0]
bike = list[1]
cycle = list[3]

Error message: List index out of range

So, I wrote a condition which should ignore it. But I am getting a error. How to ignore if the values is not given?

My code:

if list[0] == []:
    continue
else:
    car = list[0]
if list[1] == []:
    bike = list[1]
if list[2] == []:
    cycle = list[2]

SyntaxError: 'continue' not properly in loop

Where am I going wrong? How to give an if condition if there is no list in it? Did I give it correctly?

Just do it like you would say it in words.

lst = [[1,2],[2,3],[4,5]]
if len(lst) > 0:
    car = lst[0]
if len(lst) > 1:
    bike = lst[1]
if len(lst) > 2:
    cycle = lst[2]

If I understood your problem correctly, what you're looking for is a try/except statement. This allows you to do as follows:

try:
    car = list[0]
    bike = list[1]
    bike = list[2]
except IndexError:
    pass

This code allows you to execute the block "try" until there's an exception, and if an error is catched you just continue the loop. For example you could put something like this inside a for loop as follows:

for list in my_list_of_lists:
    try:
        car = list[0]
        bike = list[1]
        bike = list[2]
    except IndexError:
        continue

finally, regarding this

SyntaxError: 'continue' not properly in loop

if you use the break/continue/pass statements they should always be inside a for or while loop, as I've shown above.

Given:

a = [[1,2],[2,3],[4,5]]

And variable index , with an integer value you want to use to index the list.

A few options:

  1. Check if the length of the list is smaller then the index you want to extract.
    if len(a) > index:
        nested_list = a[index]
  1. Just try it.
    try:
        nested_list = a[index]
    except IndexError as e:
        print(f'index invalid {e}')
        # fallback condition
        nested_list = []

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM