在python中为字符串字段创建嵌套列表

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在python中为字符串字段创建嵌套列表相关的知识,希望对你有一定的参考价值。

我有以下输入数据。我可以为除最后一个字段以外的所有其他字段创建嵌套列表。最后一个字符串字段也可以在单词之间包含空格(例如:Hello!welcome)。

input  = ['a1 a2 a3 a4 Hello! welcome','b1 b2 b3 b4 how are you','c1 c2 c3 c4 you are welcome']

当前输出

[['a1', 'a2', 'a3', 'a4', 'Hello!', 'welcome'],   
 ['b1', 'b2', 'b3', 'b4', 'how', 'are', 'you'],   
 ['c1', 'c2', 'c3', 'c4', 'you', 'are', 'welcome']] 

预期输出:

[['a1', 'a2', 'a3', 'a4','Hello! welcome'],     
 ['b1', 'b2', 'b3', 'b4','how are you'],   
 ['c1', 'c2', 'c3', 'c4','you are welcome']]    

下面的代码行产生的电流输出如上所述,但是我需要转换代码以获得预期的结果。谁能让我知道达到预期结果的方法。

for ix in range(len(input) ):
    nested.append(input[ix:ix + 1])

for i in range(len(nested)):
    list1.append(nested[i][0].split())
答案

您可以为此目的使用re.split

import re

input  = ['a1 a2 a3 a4 Hello! welcome','b1 b2 b3 b4 how are you','c1 c2 c3 c4 you are welcome']

res=[re.split(" ", el, maxsplit=4) for el in input]

print(res)

输出:

[['a1', 'a2', 'a3', 'a4', 'Hello! welcome'], ['b1', 'b2', 'b3', 'b4', 'how are you'], ['c1', 'c2', 'c3', 'c4', 'you are welcome']]

[Program finished]

参考:https://docs.python.org/2/library/re.html

另一答案

我假设您的意思是每个子列表仅包含5个元素,最后一个可以在单词之间留有空格。如果是这种情况,那么您只需要遍历input列表并仅将每个字符串最多分割为5个元素(4个是最高索引)]

input  = ['a1 a2 a3 a4 Hello! welcome','b1 b2 b3 b4 how are you','c1 c2 c3 c4 you are welcome']

list1 = []

for i in input:
    list1.append(i.split(' ', 4))

print(list1)
另一答案

我最初的直觉是:-

example = 'a1 a2 a3 a4 Hello! welcome'

list1 = example.split(" ")
list1[4] = ' '.join(list1[4:])
del list1[5:]

预期的输出存储在list1 = ['a1', 'a2', 'a3', 'a4', 'Hello! Welcome']

以上是关于在python中为字符串字段创建嵌套列表的主要内容,如果未能解决你的问题,请参考以下文章

如何在python中为2个列表和其他字典创建字典?

访问嵌套片段的文本字段

Python代码阅读(第41篇):矩阵转置

如何在不创建其他字段的情况下生成一个列表的嵌套 formik 表单或表单字段?

为啥 recyclerview$adapter 在片段中为空

如何在 Python 中为 csv.reader 设置语言环境?