chenjl1972 发表于 2021-1-2 00:36:04

for 循环后如何把循环中得到的对象拿到for 外面用

# 打算检测dependent_factor在每一个分组中(具体类型==independent_factor),是否都是正态分布
independent_factors=['bs_con','bs_copd','healthy_con','smoking_con','smoking_copd','B+S con','B+S copd']
n=0
data_n=[[
for indepent_factor in independent_factors:
    n=n+1
    data_n1 = df.loc[(df['具体类型'] == indepent_factor)]
    data_n.append(data_n1)
#把每一组的数据分别写成data_1,data_2,data_3......

想写成
eva_stat, p2 = stats.levene(data_1,data_2.......)
可是系统找不到data_1,data_2
我试过
eva_stat, p2 = stats.levene(data_n)
也不行
应该怎么修改呢
多谢了

   

kogawananari 发表于 2021-1-2 00:46:43

eva_stat, p2 = stats.levene(*data_n)

jackz007 发表于 2021-1-2 00:55:31

      你想把什么东西拿出 for 循环 ,调用自定义函数,把对象作为参数传出去处理不行吗?

tryhi 发表于 2021-1-2 01:04:22

写成data_1,data_2,data_3......没有任何好处吧,用repr就可以

chenjl1972 发表于 2021-1-2 07:11:32

kogawananari 发表于 2021-1-2 00:46
eva_stat, p2 = stats.levene(*data_n)

您的这个,确实行,只是我没看懂,为什么*data_n后,就可以呢

chenjl1972 发表于 2021-1-2 07:14:52

jackz007 发表于 2021-1-2 00:55
你想把什么东西拿出 for 循环 ,调用自定义函数,把对象作为参数传出去处理不行吗?

就是不知道,如何把对象作为参数传出去

jackz007 发表于 2021-1-2 11:51:36

chenjl1972 发表于 2021-1-2 07:14
就是不知道,如何把对象作为参数传出去

def foo(p):
    print(p , p)

d = {"A":1 , "B" : 2 , "C" : 3 , "D" : 4 , "E" : 5}
for x in d . items():
    foo(x)

kogawananari 发表于 2021-1-2 12:47:43

chenjl1972 发表于 2021-1-2 07:11
您的这个,确实行,只是我没看懂,为什么*data_n后,就可以呢

foo(*)相当于foo(1,2,3)
页: [1]
查看完整版本: for 循环后如何把循环中得到的对象拿到for 外面用