选择嵌套列表值 Python
Selecting nested list values Python
我正在尝试这样使用嵌套列表:
A
B
[C1, C2, C3]
*
*
[*1, *2, *3]
*
*
[*1, *2, *3]
其中数据 table 是用列表创建的,然后特定列有一个列表作为它的单元格值。我希望能够以这种格式存储此 table,但请求数据以便仅将这些单元格的特定索引调用到新的 tables,如下所示:
A
B
C1
*
*
*1
*
*
*1
和
A
B
C2
*
*
*2
*
*
*2
和
A
B
C3
*
*
*3
*
*
*3
目前我运行下面的代码来创建新的tables:
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[:])
哪个 运行 没问题,但我想知道是否有一种方法可以构建 table,这样我就可以在没有此代码块的情况下调用值来分隔它们
您可以通过简单的理解构建三个数据集,而不是构建中间列表并附加它们:
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
我正在尝试这样使用嵌套列表:
A | B | [C1, C2, C3] |
---|---|---|
* | * | [*1, *2, *3] |
* | * | [*1, *2, *3] |
其中数据 table 是用列表创建的,然后特定列有一个列表作为它的单元格值。我希望能够以这种格式存储此 table,但请求数据以便仅将这些单元格的特定索引调用到新的 tables,如下所示:
A | B | C1 |
---|---|---|
* | * | *1 |
* | * | *1 |
和
A | B | C2 |
---|---|---|
* | * | *2 |
* | * | *2 |
和
A | B | C3 |
---|---|---|
* | * | *3 |
* | * | *3 |
目前我运行下面的代码来创建新的tables:
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[:])
哪个 运行 没问题,但我想知道是否有一种方法可以构建 table,这样我就可以在没有此代码块的情况下调用值来分隔它们
您可以通过简单的理解构建三个数据集,而不是构建中间列表并附加它们:
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