python - 选择嵌套列表值Python
问题描述
我正在尝试这样使用嵌套列表:
一种 | 乙 | [C1、C2、C3] |
---|---|---|
* | * | [*1、*2、*3] |
* | * | [*1、*2、*3] |
其中一个数据表是用列表创建的,然后一个特定的列有一个列表作为它的单元格值。我希望能够以这种格式存储此表,但请求数据以便仅将这些单元格的特定索引调用到新表,如下所示:
一种 | 乙 | C1 |
---|---|---|
* | * | *1 |
* | * | *1 |
和
一种 | 乙 | C2 |
---|---|---|
* | * | *2 |
* | * | *2 |
和
一种 | 乙 | C3 |
---|---|---|
* | * | *3 |
* | * | *3 |
目前我运行以下代码来创建新表:
dataset1 = []
dataset2 = []
dataset3 = []
for row in self.data:
datarow1 = []
datarow2 = []
datarow3 = []
for col in row:
if len(col) > 1 and isinstance(col, str) is False:
datarow1.append(col[0])
datarow2.append(col[1])
datarow3.append(col[2])
else:
datarow1.append(col)
datarow2.append(col)
datarow3.append(col)
dataset1.append(datarow1[:])
dataset2.append(datarow2[:])
dataset3.append(datarow3[:])
哪个运行良好,但我想知道是否有一种方法可以构建表,以便我可以在没有此代码块的情况下调用值来分隔它们
解决方案
您可以通过简单的理解构建三个数据集,而不是构建中间列表并附加它们:
datasets = [[[
col[i] if len(col) and not isinstance(col, str) else col
for col in row
] for row in data] for i in range(3)]
如果您需要执行涉及所有三个数据集的任何其他操作,将它们放在一个列表中可能比放在三个命名变量中更容易,但如果您确实需要单独提取dataset1
、dataset2
和dataset3
,那很简单:
[dataset1, dataset2, dataset3] = datasets
推荐阅读
- javascript - 返回匹配单词的行及其后面的行并按降序列出
- sql - Oracle 检查前一行中的列是否匹配
- javascript - 字符串操作的Nodejs内存不足错误
- sql - 如何从表中的 2 个相关行在结果集中创建一行
- testing - Loadrunner 重播脚本问题
- reactjs - 化妆,这样我就可以在每个页面上添加和正确的 desc
- git - 如何使用 git config 更新配置文件部分?
- c# - 为什么访问枚举定义中不存在的枚举成员(通过转换整数)不会给出错误
- javascript - 如何使缩略图滑块响应
- sql-server - SQL Server:游标仅在 Management Studio 中运行时第一次返回记录