Home > Mobile >  Are there any priority "or" in python?
Are there any priority "or" in python?

Time:12-01

Is there any "priority or" function in python? For instance if i am out of range

vec = [1, 2, 3, 4, 5]
new_vec = []

for index, number in enumerate(vec):
    try:
    new_value  = vec[index   1]   vec[index   2] or if i am out of range do  = vec[index  1] and if i am still out of range pass
except IndexError:
    pass 

The problem with my "pass" is that it will either do vec[index 1] vec[index 2] or pass however I want to do vec[index 1] if vec[index 1] vec[index 2] not possible and if vec[index 1] is not possible I want to pass. For instance the 4 in vec has the situation vec[index 1] but for the 5 we would pass

CodePudding user response:

You can use sum() and regular list slicing. Unlike regular indexing which raises an error when out of range, slicing continues to work.

five = [0, 1, 2, 3, 4]

print(five[4]) # 4
print(five[5]) # Error
print(five[2:4]) # [2, 3]
print(five[2:1000]) # [2, 3, 4]; no error
print(five[1000:1001]) # []; still no error

For your usecase, you can do:

new_value  = sum(vec[index   1: index   3])
  • Related