【问题标题】:how to separate the value inside a list of list base on the length value of character?如何根据字符的长度值分隔列表列表中的值?
【发布时间】:2023-03-16 08:46:01
【问题描述】:

数据是这样的,这里需要根据长度来划分整数字符。

长度应为 10,其余部分不重要。

请大家帮忙。

list_val = [['01234567890000','123456789','xyz'],['123456789','1234567890111','abcdefghijkl']]

new_list = [[] for i in range(len(list_val))]
for i in range(Len(list_val)):
    for txt in list_val[i]:
        if len(txt)>10:
            new_list[i].append(re.split(r'(\d{10})', txt))
        else:
            new_list[i].append(txt)

输出是:

[[['', '0123456789', '0000'], '123456789', 'xyz'],['123456789', ['', '1234567890', '111'], ['abcdefghijkl']]]

这里需要去掉里面的list不需要的部分。

想要的输出:

[['0123456789','123456789', 'xyz'],['123456789','1234567890', 'abcdefghijkl']]

【问题讨论】:

    标签: python-3.x list python-re


    【解决方案1】:

    您似乎想截断数字字符串,而不是拆分它们。只需为此使用切片:

    new_list = [[s[:10] if s.isdigit() else s for s in sub] for sub in list_val]
    # [['0123456789', '123456789', 'xyz'], ['1234567890', '123456789', 'abcdefghijkl']]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-05
      • 2022-06-23
      • 2020-01-23
      相关资源
      最近更新 更多