Python将字符串列表拆分为包含原始字符串的列表

2024-10-03 17:19:01 发布

您现在位置:Python中文网/ 问答频道 /正文

这类似于将字符串列表拆分为字符串列表,但我需要原始字符串的副本作为来自它的列表元素。目的是我想从文件名中解析出元素,但是我想保留文件名,这样在我用单词匹配列表之后,文件名就可以随时使用了,这样我就可以用它做些什么了。在

例如

stringList = ["wordA1_wordA2_wordA3","wordB1_wordB2_wordB3"] 

变成

^{pr2}$

我试着用一个命令来理解列表

最接近的是:

^{3}$

结果是:

splitList = [["wordA1_wordA2_wordA3",["wordA1","wordA2","wordA3"]],
           ["wordB1_wordB2_wordB3",["wordB1","wordB2","wordB3"]]

我可以用这个,但不知道是否有人能给我一个更优雅的建议,我可以从中学习。在

我试过了

splitList=[item.split('_') + item for item in stringList]

它抱怨没有将列表连接到str

以及

splitList=[item.split('_').append(item) for item in stringList]

创建一个“无”列表


Tags: 字符串元素列表for文件名itemsplitsplitlist
2条回答

[item.split('_').append(item)...]返回None的原因是list.append是一个就地修饰符,没有返回值。在

在这里使用dict,而不是listslist,因为文件名可以是您的键,各个组件可以是您的值:

stringList = ["wordA1_wordA2_wordA3","wordB1_wordB2_wordB3"]

string_dict = {filename: filename.split("_") for filename in stringList}

# {'wordA1_wordA2_wordA3': ['wordA1', 'wordA2', 'wordA3'], 'wordB1_wordB2_wordB3': ['wordB1', 'wordB2', 'wordB3']}

但是,如果需要列表:

^{pr2}$

其中[filename, *filename.split("_")]使用*将结果列表从str.split解压缩到当前列表中

您可以使用*打开拆分列表:

splitList=[[item,*item.split('_')] for item in stringList]

这给了你通缉令

^{pr2}$

编辑:您还可以执行以下操作:

splitList=[[item] + item.split('_') for item in stringList]

处理字符串和列表的连接。[item]只需创建一个带有单个项item的列表,并将其与拆分列表连接起来。在

相关问题 更多 >