从 python 元组列表中提取坐标

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

我有一个 python 列表

training_data=[(x_1, y_1), (x_2, y_2), ..., (x_n, y_n)]

我想提取一个

x
值列表

training_data_x=[x_1, x_2, ..., x_n]

我试过了

for j in range(0, len(training_data)):
    training_data_x=[i for i in training_data[j][0]]

training_data_x=[i for i in training_data[j][0] for j in range(0, len(training_data))]

但都没有用。我该怎么做?

python list tuples
4个回答
5
投票

我更喜欢 list comprehension with a self-documenting tuple unpacking:

[x for x,y in training_data]

完整程序:

training_data=[(1.5, 11), (2.5, 22), (7.5, 77)]
training_data_x = [x for x,y in training_data]
print(training_data_x)

2
投票

理解会做:

training_data_x = [x[0] for x in training_data]

0
投票

看起来你只有一个元组列表。我对 python 还是有点陌生,但我会尝试:

training_data_x =[] 对于我在 training_data 中: training_data_x.append(i[0])

您可以做的另一种方法是创建一个接受元组并返回 x 的函数。然后将该函数映射到您的 training_data_x 变量。


0
投票

您可以轻松地将它们分开而不是迭代:

代码如下:

training_data_x, trainig_data_y = list(list(zip(*training_data))[0]), list(list(zip(training_data))[1])

这是演练:

  1. training_data 被解压并创建一个 zip 对象。
  2. “list(zip(..))”创建了一个列表,其中 x 和 y 坐标位于单独的元组中,类似于 [(x. coordinates), (y. Coordinates)]
  3. 使用索引提取 x 和 y 坐标(作为元组)
  4. 使用列表将 x 和 y 元组转换为单独的列表。
© www.soinside.com 2019 - 2024. All rights reserved.