values = [-50, -80, -100]
max_value = None
for i in values:
if max_value is None or i > max_value:
max_value = i
为什么我们需要包含此代码max_value is None
假设我们经历了for循环
循环1:i = -50。我们不能用无来评估-50,对吧?
答案 0 :(得分:1)
由于您无法将# Extract columns
v = df.filter(like='A')
# Convert blanks to NaNs so we can call Series.dropna later.
df['NC'] = v[v.astype(bool)].agg(lambda x: '_'.join(x.dropna()), axis=1)
# Or,
# df['NC'] = v[v.astype(bool)].agg(
# lambda x: x.dropna().str.cat(sep='_'), axis=1)
print(df)
key A1 A2 A3 BX CX DX NC
0 1 X1 Y1 B1 C1 D1 X1_Y1
1 2 X2 Z2 B2 C2 D2 X2_Z2
2 3 X3 B3 C3 D3 X3
3 4 X4 B4 C4 D4 X4
4 5 B5 C5 D5
与int
进行比较,因此得出NoneType
:
TypeError
因此,删除条件将导致您的代码中断。但是,最好设置一个最小的起始值,例如-50 > None # TypeError: '>' not supported between instances of 'int' and 'NoneType'
:
-inf
当然,对于微不足道的计算,您可以使用内置的values = [-50, -80, -100]
max_value = -float('inf')
for i in values:
if i > max_value:
max_value = i
:
max
答案 1 :(得分:1)
最惯用的方法是假设values[0]
为最大值,并从第一个索引开始迭代:
values = [-50, -80, -100]
max_value = values[0]
for i in values[1:]:
if i > max_value:
max_value = i
您可以摆脱None
支票。