Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 用for循环替换if-else_Python_List_For Loop - Fatal编程技术网

Python 用for循环替换if-else

Python 用for循环替换if-else,python,list,for-loop,Python,List,For Loop,我有一个经常变化的动态整数列表,我希望能够找到列表中的下一个最高值。这是我目前列表的输出: [u'4', u'32', u'72', u'100'] 我已经写了一个很长的if-else声明,以确认我的想法/方法确实有效。现在我希望能够用for循环替换if-else语句(我认为for循环在这里应该是最好的),但是我在编写for循环时遇到了很多问题 如何用for循环替换下面的if-else语句 if unicode(new_val_xx) in resume_menu_list01: if

我有一个经常变化的动态整数列表,我希望能够找到列表中的下一个最高值。这是我目前列表的输出:

[u'4', u'32', u'72', u'100']
我已经写了一个很长的if-else声明,以确认我的想法/方法确实有效。现在我希望能够用for循环替换if-else语句(我认为for循环在这里应该是最好的),但是我在编写for循环时遇到了很多问题

如何用for循环替换下面的if-else语句

if unicode(new_val_xx) in resume_menu_list01:
    if unicode(int(new_val_xx)+1) in resume_menu_list01:
        next_page = int(new_val_xx)+1
    elif unicode(int(new_val_xx)+2) in resume_menu_list01:
        next_page = int(new_val_xx)+2
    elif unicode(int(new_val_xx)+3) in resume_menu_list01:
        next_page = int(new_val_xx)+3
    elif unicode(int(new_val_xx)+4) in resume_menu_list01:
        next_page = int(new_val_xx)+4
    elif unicode(int(new_val_xx)+5) in resume_menu_list01:
        next_page = int(new_val_xx)+5
    .....
    elif unicode(int(new_val_xx)+97) in resume_menu_list01:
        next_page = int(new_val_xx)+97
    elif unicode(int(new_val_xx)+98) in resume_menu_list01:
        next_page = int(new_val_xx)+98
    elif unicode(int(new_val_xx)+99) in resume_menu_list01:
        next_page = int(new_val_xx)+99
另外,我的列表中每个值前面的u代表什么(u'4')

谢谢。

有三个步骤:

list_of_numbers = map(int, resume_menu_list01)
# if you are using Python3, list_of_numbers = list(map(int, resume_menu_list01))
maximum_number = max(list_of_numbers)
next_highest = maximum_number + 1
  • 将unicode字符串转换为整数
  • 在列表中查找最大整数
  • 将一个添加到最大值以获得下一个最高值
  • 以下是三个步骤:

    list_of_numbers = map(int, resume_menu_list01)
    # if you are using Python3, list_of_numbers = list(map(int, resume_menu_list01))
    maximum_number = max(list_of_numbers)
    next_highest = maximum_number + 1
    
    可以在一个表达式中组合它们:

    next_highest = max(map(int, resume_menu_list01))+1
    

    next\u highest=max(map(int,resume\u menu\u list01))+1
    将返回最大值 数字加1,不在列表中。如果我有数字4和 我想找到下一个最高的数字,32,我该怎么写 for循环

    if unicode(new_val_xx) in resume_menu_list01:
        if unicode(int(new_val_xx)+1) in resume_menu_list01:
            next_page = int(new_val_xx)+1
        elif unicode(int(new_val_xx)+2) in resume_menu_list01:
            next_page = int(new_val_xx)+2
        elif unicode(int(new_val_xx)+3) in resume_menu_list01:
            next_page = int(new_val_xx)+3
        elif unicode(int(new_val_xx)+4) in resume_menu_list01:
            next_page = int(new_val_xx)+4
        elif unicode(int(new_val_xx)+5) in resume_menu_list01:
            next_page = int(new_val_xx)+5
        .....
        elif unicode(int(new_val_xx)+97) in resume_menu_list01:
            next_page = int(new_val_xx)+97
        elif unicode(int(new_val_xx)+98) in resume_menu_list01:
            next_page = int(new_val_xx)+98
        elif unicode(int(new_val_xx)+99) in resume_menu_list01:
            next_page = int(new_val_xx)+99
    
    您是否只想对列表进行排序,以便可以按顺序逐步浏览?如果是这样,
    sorted\u list=sorted(resume\u menu\u list01,key=int)
    ;但要在现有列表中查找最大值,请使用
    max

    >>> i = [u'4', u'32', u'72', u'100']
    >>> print(max(map(int, i)))
    100
    
    现在,如果您想知道已知值的下一个最高值是什么:

    known_value = u'4'
    def get_highest(value, items):
       sorted_items = sorted(items, key=int)
       if sorted_items.index(value) == len(sorted_items) - 1:
          # The value is the highest item in the list
          # return the item
          return value
       else:
          return sorted_items[sorted_items.index(value)+1]
    
    print(get_highest(known_value, [u'4', u'32', u'72', u'100']))
    

    这就是你想要的?否则@Burhan Khalid的答案会更加优化。

    next\u page=max(map(int,resume\u menu\u list01))
    ?您有一个unicode字符串列表,而不是整数。
    u''
    表示一个。下一个页面=max(映射(int,resume\u menu\u list01))将返回列表中的最大数字。如果4是当前的数字,我想找到下一个最高的数字,在本例中是32,那么如何编写循环?下一个最高=最大(映射(int,resume\u menu\u list01))+1将返回最大数字加上一,这不在列表中。如果我有数字4,并且我想找到下一个最高的数字,即32,我将如何编写for循环?