element.isalpha()
成为False
时,我已使用以下代码返回列表:
for element in initialList:
if element.isalpha() == True:
newList.append(element)
return newList
initialList
是一个预定义列表,其中包含用于测试目的的随机混合字母/数字,当然newList
会在element.isalpha()
变为False
后立即返回1} p>
但是,我必须使用while
循环以及break
语句来实现此目的。我怎么能这样做?
答案 0 :(得分:3)
您确实需要break
语句,但while
语句在这里并没有用。考虑:
def f(initialList):
newList=[]
for element in initialList:
if not element.isalpha():
break
newList.append(element)
return newList
例如:
>>> f(['a', 'b', '!', 'c'])
['a', 'b']
while
)def g(initialList):
newList=[]
i = 0
while i < len(initialList):
if not initialList[i].isalpha():
break
newList.append(initialList[i])
i+=1
return newList
答案 1 :(得分:0)
您可以使用函数all
来执行此操作,代码如下:
>>> li = ['a', 'b']
>>> all(e.isalpha() for e in li)
True
>>> li = ['a', 'b', '!']
>>> all(e.isalpha() for e in li)
False
答案 2 :(得分:0)
不需要循环,只需使用filter
- 这正是它的用途。 f = lambda initial_list: filter(str.isalpha, initial_list)