在Python中用单行嵌套循环 – 用数组迭代

我有很长的嵌套循环,我相信我可以使用单行符号来缩短它。 但是在这里,我在嵌套单行数组迭代中挣扎。 我会感谢您的帮助和build议。 我的函数检查我的Excel表格中是否有空单元格,如果没有,则转到行中的下一个单元格。 如果单元格不是空的,我需要将每个值添加到数组中,并分别创build另一个数组以在列头中赋值。 对于单元格中的每个值,我都需要在头部添加相同数量的项目。 例如,

ABCD 50 30 10 1 Danny, Sarah Lenny NaN Mary 

将返回两个数组:

 prob_arr = [50, 50, 30, 1] val_arr = ['Danny', 'Sarah', 'Lenny', 'Mary'] 

这里是我的function:

 def concatvals(row, col, width, start, stop): prob_head = list(df)[start:stop] val_arr = [] prob_arr = [] j = 0 for i in range(width): value_temp = df.iloc[row, col] if isinstance(value_temp, float) is False: value = [x.strip() for x in value_temp.split(',')] k = 0 for k in range(len(value)): prob_arr.append(prob_head[i]) k+=1 for i in range(len(value)): val_arr.append(value[i]) else: num_empty = j+1 for k in range(num_empty-1): prob_arr.append(prob_head[i]) k+=1 for i in range(num_empty): val_arr.append[value[i]] pass col+=1 randparameter = random.choices(val_arr, prob_arr, k = 1) print(val_arr,prob_arr, randparameter)