【问题标题】:How to split list element according to place value如何根据位置值拆分列表元素
【发布时间】:2020-08-28 03:49:02
【问题描述】:

我正在尝试从一组数字中拆分年份、月份和控制数字。

s = ['201911007', '201203008']
my expected output
year=['2019', '2012']
month=['11','01']
controlnum=['007','008']

【问题讨论】:

    标签: python list split integer csv


    【解决方案1】:

    您可以使用列表推导生成每个部分的元组,然后 zip 将元组分解为单独的列表:

    s = ['201911007', '201203008']
    
    year,month,controlNum = map(list,zip(*( (v[:4],v[4:6],v[6:]) for v in s )))
    

    输出:

    print(year)
    print(month)
    print(controlNum)
    
    ['2019', '2012']
    ['11', '03']
    ['007', '008']
    

    【讨论】:

      【解决方案2】:
      s = ['201911007', '201203008']
      year = []
      month = []
      controlnum = []
      for number in s:
          year.append(number[:4])
          month.append(number[4:6])
          controlnum.append(number[6:])
      
      print(year)
      print(month)
      print(controlnum)
      

      【讨论】:

      • 很高兴知道这一点。
      【解决方案3】:

      尝试使用函数

      s = ['201911007', '201203008']
      def info(s):
           return [i[:4] for i in s], [i[4:s] for i in a], [i[6:] for i in s]
      year, month, controlnum = defo(s)
      print (year)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-11-11
        • 1970-01-01
        • 2019-03-06
        • 2023-01-26
        • 1970-01-01
        • 2021-11-30
        • 1970-01-01
        相关资源
        最近更新 更多