<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          一日一技:使用 itertools.groupby 對已排序整數列表中的連續(xù)整數進行分組

          共 1551字,需瀏覽 4分鐘

           ·

          2023-08-17 00:20

          欄目介紹

          本欄目主要介紹 Python 的日常使用小技巧,希望能幫助大家利用一些碎片時間,掌握提高日常效率的方法~

          使用 itertools.groupby 對已排序整數列表中的連續(xù)整數進行分組

          這次我們來看一個使用 itertools.groupby 的例子。

          場景:我們有一個包含已排序整數的列表,我們想要將連續(xù)的整數分組。

          原始已排序整數列表:

          numbers = [123678111213141718212223]

          不使用 itertools.groupby 的方法:

          groups = []
          current_group = [numbers[0]]

          for i in range(1, len(numbers)):
              if numbers[i] == numbers[i - 1] + 1:
                  current_group.append(numbers[i])
              else:
                  groups.append(current_group)
                  current_group = [numbers[i]]

          groups.append(current_group)
          print(groups)

          使用 itertools.groupby 的方法:

          from itertools import groupby

          groups = []
          for k, g in groupby(enumerate(numbers), lambda x: x[1] - x[0]):
              groups.append([item[1for item in g])

          print(groups)

          在這個例子中,我們使用了 itertools.groupby 函數,它可以幫助我們輕松地根據某個條件對已排序的序列進行分組。這使得代碼更加簡潔。

          itertools.groupby 函數接受兩個參數:一個已排序的可迭代對象(如列表)和一個可選的鍵函數。它返回一個迭代器,該迭代器產生由鍵函數產生的唯一鍵和對應的元素組成的元組。在這個例子中,我們使用了 lambda x: x[1] - x[0] 作為鍵函數,將具有相同差值的連續(xù)整數分為一組。

          在使用 itertools.groupby 時,需要確保代碼仍具有可讀性,避免在復雜情況下使用這個函數導致代碼難以理解。同時,請注意,itertools.groupby 函數要求輸入的可迭代對象是已排序的。


          瀏覽 152
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  成人网在线免费观看 | 日韩精品一区二区在线观看 | 操屄一级片 | 青娱乐亚洲第一在线 | a视频免费|