【问题标题】:Iteration saves as multiple lists, instead of one迭代保存为多个列表,而不是一个
【发布时间】:2021-05-25 22:39:54
【问题描述】:

我尝试了在这个论坛上找到的 for 循环的几个答案,但我就是无法完成,即使它很简单..

我正在尝试将所有可用结果保存到“m”中,但因为它是一个 for 循环,它确实会为 m 单独打印所有结果。

for feat in main_data:
***here some kind of code irrelevant for now ***
    m = []
    stat, p, dof, expected = chi2_contingency(data1)
    if p < alpha:
        stat2, p1, dof2, expected2 = chi2_contingency(data2)
        if p < p1 or not m:
            m.append(feat)
            print(m)

立即获取:

['feat 1']
['feat 2']
['feat 3']

试图得到:

['feat 1', 'feat 2', 'feat 3']

注意*我不能将“m”标记出来

【问题讨论】:

    标签: pandas for-loop iteration


    【解决方案1】:

    我不知道这个 lang,但似乎每次在循环中都重新定义数组,将其拉到更高的范围。

    m = []
    for feat in main_data:
    ***here some kind of code irrelevant for now ***
        
        stat, p, dof, expected = chi2_contingency(data1)
        if p < alpha:
            stat2, p1, dof2, expected2 = chi2_contingency(data2)
            if p < p1 or not m:
                m.append(feat)
                print(m)
    

    【讨论】:

    • 是的,现在我觉得我真的很愚蠢,我无法按照建议让 M 脱离循环 :)
    • 只是一件小事,它会在迭代后打印 4 个列表,而我只需要最后一个。 -1 在这里不起作用,因为它只是列表。
    • 打印 4 个列表(或循环迭代的长度)是有意义的 - 将 print(m) 移到 main_data 中的 for 壮举之外:范围
    猜你喜欢
    • 2014-10-23
    • 1970-01-01
    • 2019-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多