Discuss / Python / 很多人的L2输出没有数字

很多人的L2输出没有数字

Topic source

我看很多人的L2输出没有数字,我想应该是这样的

-- coding: utf-8 --

L1 = ['Hello', 'World', 18, 'Apple', None] L2=[s.lower() if isinstance(s,str) else s for s in L1] print(L2)

Forrest_Gao

#2 Created at ... [Delete] [Delete and Lock User]

顶个。

真小嗣

#3 Created at ... [Delete] [Delete and Lock User]

为什么这里的for s in L1要放到最后,而没有else的情况时for放到最后就要报错?

Dearminor

#5 Created at ... [Delete] [Delete and Lock User]

reply for #3 我是这样想的:把这一题分为判断if else和运算for in两部分 要先进行判断再进行运算 没有else则判断式不完全

说来惭愧,几分钟后才看明白逻辑,用下面的式子得到验证:

L2 = [s if not isinstance(s,str) else  s.lower() for s in L1]

逻辑:

1. 首先for遍历L1中所有项
2. 然后if判断是否是str,是则转换,不是则直接打印。

  • 1

Reply