【问题标题】:How can I iterate the first element of each tuple in a list of tuples through a class method?如何通过类方法迭代元组列表中每个元组的第一个元素?
【发布时间】:2020-05-10 22:54:10
【问题描述】:

我正在尝试使用 if 语句确定第一个元素是否满足条件,如果满足,则元组的下两项将输入到类方法中。比如:

x = [(345, 1000, 5),(576, 1345, 8), (234, 1175, 3)]

在这种情况下,我想运行元组的第一个元素,如果它表示条件,则将接下来的两个数字放在类方法中。

到目前为止,我已尝试通过以下方式进行迭代:

[i[0] for i in x]:
         if self.i >= 300 and self.i <=750:
              self.test1=[y[1] for y in x] 

我知道这是无法做到的,而且我似乎无法解决这个问题。

满足条件后,其他两个元素应该聚合成两个变量,这样我就可以取平均值了。


def regional_stats(self):

        [zipcode[0]for zipcode in all_data]:
            if self.zipcode >= 10000 and self.zipcode <= 14999:
                self.NY_sqft = [sqft[1] for sqft in all_data]
                self.NY_avgsqft = statistics.mean(square_footage)
                return self.NY_avg_sqft

我正在处理住房数据,需要邮政编码与平方英尺和卧室保持一致,因此我不能简单地将它们单独提取为自己的变量。如果它们在此邮政编码范围内,我正在尝试汇总卧室的面积和数量

【问题讨论】:

  • 你能显示你想要的输出吗
  • 我刚刚给你加了上面

标签: python list class tuples


【解决方案1】:

虽然我并不完全清楚您要做什么,但这里有一些基本语法可以让您到达您需要的地方。

在这种情况下,我只是打印了满足条件的元组的平均值,但是您可以将 print() 替换为适合您的任何内容。

import numpy as np
x = [(345, 1000, 5),(576, 1345, 8), (234, 1175, 3)]

for t in x:
    if t[0] >= 300 and t[0] <= 750:
        print(np.mean(t))

输出

450.0
643.0

【讨论】:

  • 抱歉,我的问题不清楚,因为我处于 Python 的较新方面,所以我缺少一些使我的问题令人困惑的技术。我会在我的程序中尝试一下,谢谢
猜你喜欢
  • 1970-01-01
  • 2021-11-22
  • 2019-05-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多