这类似于将字符串列表拆分为字符串列表,但是我希望将原始字符串的副本作为来自它的列表元素。目的是我想从文件名中解析出元素,但我想保留文件名,因此在使用单词匹配列表之后,文件名就可以使用了,所以我可以使用它来做一些事情。
例如
stringList = ["wordA1_wordA2_wordA3","wordB1_wordB2_wordB3"]
成为
splitList = [["wordA1_wordA2_wordA3","wordA1","wordA2","wordA3"],
["wordB1_wordB2_wordB3","wordB1","wordB2","wordB3"]]
我正在尝试通过单个命令来实现列表理解
我最近得到的是:
splitList=[[item,item.split('_')] for item in stringList]
产生:
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]
会创建“无”列表
答案 0 :(得分:2)
您可以使用*
解压缩拆分列表:
splitList=[[item,*item.split('_')] for item in stringList]
为您提供通缉犯
splitList = [["wordA1_wordA2_wordA3","wordA1","wordA2","wordA3"],
["wordB1_wordB2_wordB3","wordB1","wordB2","wordB3"]]
编辑:您还可以执行以下操作:
splitList=[[item] + item.split('_') for item in stringList]
处理字符串和列表的串联。 [item]
只需创建一个包含单个项目item
的列表,然后将其与拆分列表连接起来。
答案 1 :(得分:1)
@media only screen and (max-width: 768px) {
.carousel-header-container { /* Content block 1 */
position: relative;
width: 100%;
height: auto;
top: 0%;
left: 0%;
overflow: hidden;
}
.carousel-content-row { /* Content block 2 */
position: relative;
width: 100%;
height: 5em;
}
}
返回[item.split('_').append(item)...]
是因为None
是就地修饰符,并且没有返回值。
在这里使用list.append
而不是dict
的{{1}}可能会更有优势,因为文件名可以是您的密钥,而各个组成部分可以是您的密钥值:
list
但是,如果您需要列表:
lists
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']}
使用processed_list = [[filename, *filename.split("_")] for filename in stringList]
# [['wordA1_wordA2_wordA3', 'wordA1', 'wordA2', 'wordA3'], ['wordB1_wordB2_wordB3', 'wordB1', 'wordB2', 'wordB3']]
将结果列表从[filename, *filename.split("_")]
解压缩到当前列表中