【问题标题】:Split list in to Sublists with previous element in Python [duplicate]在Python中将列表拆分为具有前一个元素的子列表[重复]
【发布时间】:2021-09-05 06:03:36
【问题描述】:

我有以下列表,并希望拆分为具有先前字母数字值的子列表

list = ['P1', 'P2', 'P3', 'P4', 'P5'..........']

预期输出:

output = [['P1', 'P2'],['P2', 'P3'],['P3', 'P4'],['P4', 'P5'],........]

有没有人能解释一下

【问题讨论】:

    标签: python list split


    【解决方案1】:

    这可能不是最“Pythonic”的方式,但这里有一个解决方案:

    input_list = ['P1', 'P2', 'P3', 'P4', 'P5']
    output_list = []
    
    for i in range(1, len(input_list)):
        output_list.append([input_list[i-1], input_list[i]])
    
    print(output_list)
    # [['P1', 'P2'], ['P2', 'P3'], ['P3', 'P4'], ['P4', 'P5']]
    
    

    【讨论】:

      【解决方案2】:

      你可以这样做,

      >>> n = 2
      >>> l = ['P1', 'P2', 'P3', 'P4']
      >>> [l[i:i+n] for i in range(0, len(l), n)]
      [['P1', 'P2'], ['P3', 'P4']]
      >>>
      

      【讨论】:

        【解决方案3】:

        使用列表推导:

        >>> l1 = ['A', 'B', 'C', 'D', 'E']
        >>> [(x,y) for x,y in  zip(l1,l1[1:])]
        [('A', 'B'), ('B', 'C'), ('C', 'D'), ('D', 'E')]
        >>>
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2018-12-22
          • 1970-01-01
          • 2018-03-11
          • 1970-01-01
          • 1970-01-01
          • 2015-05-19
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多