2024-03-28 20:02:01 发布
网友
Python 2.7版
Ubuntu 12.04版
我正试图扭转这种局面:
nine = [] for each in word_list: if len(each) == 9: nine.append(each) return random.choice(nine)
对此:
return random.choice([i if len(i) == 9 for i in words])
但是这给了我一个语法错误,我相信顺序是正确的,那么是什么导致这个失败呢?你知道吗
如果没有else部分,if必须在末尾。所以改变吧
if
[i if len(i) == 9 for i in words]
至
[i for i in words if len(i) == 9]
使用条件语句/三元运算符时,必须提供else:部分。尝试以下操作:
else:
return random.choice([i if len(i) == 9 else '' for i in words])
当然,您可能有机会random.choice()返回一个空字符串。如果希望列表理解仅返回i如果且仅当长度为9,则可以将条件放在列表理解的末尾,而不是需要else::
random.choice()
i
return random.choice([i for i in words if len(i) == 9])
使用过滤器(因为这就是你要做的)
random.choice(filter(lambda x: len(x) == 9, words))
如果没有else部分,
if
必须在末尾。所以改变吧至
使用条件语句/三元运算符时,必须提供
else:
部分。尝试以下操作:当然,您可能有机会
random.choice()
返回一个空字符串。如果希望列表理解仅返回i
如果且仅当长度为9,则可以将条件放在列表理解的末尾,而不是需要else:
:使用过滤器(因为这就是你要做的)
相关问题 更多 >
编程相关推荐