如何将列表中的额外维度扁平化为 Python 的单个维度? [重复]

问题描述 投票:0回答:1

问题1。您是否总是需要将列表转换为字符串才能删除方括号?

主要问题。我想删除嵌套在列表中的列表的额外方括号。当单词改变时,嵌套列表的[]索引也会改变

示例

Words = ['红衬衫', ['小黄人', '敢死队', '炮灰']]

python list square-bracket
1个回答
2
投票

看起来您正在寻求压平列表,或者将列表列表的“额外维度”删除为单个维度的过程。

此处链接的线程中有一个冗长的讨论,但我已链接到my首选解决方案https://stackoverflow.com/a/952952/9453914

您的解决方案会有点不同,因为您首先需要添加一些括号以使您的生活更轻松一些,但是,这应该适用于上面给出的示例

Words = ['Red Shirt', ['Minions', 'Expendables', 'Cannon Fodder']]
words = [[entry] if type(entry) == str else entry for entry in Words ]
flattened = [word for l in words for word in l]
flattened
>>> ['Red Shirt', 'Minions', 'Expendables', 'Cannon Fodder']

我们需要首先将

'Red Shirt'
嵌套在自己的列表中,以便展平条目不会开始将字符串拆分为单个字符。

© www.soinside.com 2019 - 2024. All rights reserved.