如何在Python的列表推导中执行以下操作?
nums = [1,1,0,1,1]
oFlag = 1
res = []
for x in nums:
if x == 0:
oFlag = 0
res.append(oFlag)
print(res)
# Output: [1,1,0,0,0]
Run Code Online (Sandbox Code Playgroud)
基本上在这个例子中,一旦0发生,就将列表的其余部分清零.
我正在尝试并排生成两个 seaborn 核密度图 ( kdeplot)。
这里使用了三个特征(社区学校?、经济需求指数、学校收入估计)。唯一的分类特征“社区学校?” 显示为代表其级别的绿蓝色。“经济需求指数”和“学校收入估计”分别针对两个 kdeplots。
使用下面显示的代码创建的图像是我能得到的最好结果,但它有问题。
1)第二个图的 y 轴刻度是错误的(它应该是一些整数刻度,就像第一个图一样)校正:kdeplot被归一化(所有东西总和为 1),因此 y 轴在给定其 x 值的情况下是正确的。
2)沿着两个图下方产生一个额外的轴(?)
3)我想为每个子图添加一个标题
我发现kdeplot不支持hue所以我试图让它与FacetGrid. 不确定这是否是正确的方法。如果提供更好的方法将不胜感激。
fig, (ax1, ax2) = plt.subplots(1, 2)
fig.subplots_adjust(wspace=.8)
fg = sns.FacetGrid(df, hue='Community School?', size=3)
fg.map(sns.kdeplot, 'Economic Need Index', shade=True, ax=ax1, label='Economic Need Index')
fg.map(sns.kdeplot, 'School Income Estimate', shade=True, ax=ax2, label='School Income Estimate')
plt.show()
Run Code Online (Sandbox Code Playgroud)
# my dataset looks like:
Community School? / Economic Need Index / School Income Estimate
0 …Run Code Online (Sandbox Code Playgroud)