2024-04-26 14:50:19 发布
网友
>>> row = [1,2,3,4,"--"] >>> row = [cell.replace("--","hello") for cell in row if cell == "--"] >>> row ['hello']
如何获得[1,2,3,4,"hello"]的列表理解?你知道吗
[1,2,3,4,"hello"]
您应该使用conditional expression:
["hello" if cell == " " else cell for cell in row]
这是左侧元素生成表达式的一部分,而不是列表理解语法本身,其中if语句充当过滤器。你知道吗
if
如果test\u expression else false\u expression,则条件表达式使用形式true\u expression;它总是生成一个值。你知道吗
我简化了一点表达式;如果您要用"hello"替换" ",您也可以返回"hello"。你知道吗
"hello"
" "
[cell.replace(" ","hello") if cell==" " else cell for cell in row]
当在for的末尾使用if时,它会限制考虑哪些项,因此版本只返回一个项,因为源列表中只有一个项与条件匹配。你知道吗
for
同样在这种情况下,您不需要使用replace,您可以只使用"hello" if cell==" ",但是如果您有多个要操作的项,您可以使用此表单。你知道吗
replace
"hello" if cell==" "
您应该使用conditional expression:
这是左侧元素生成表达式的一部分,而不是列表理解语法本身,其中
if
语句充当过滤器。你知道吗如果test\u expression else false\u expression,则条件表达式使用形式true\u expression;它总是生成一个值。你知道吗
我简化了一点表达式;如果您要用
"hello"
替换" "
,您也可以返回"hello"
。你知道吗[cell.replace(" ","hello") if cell==" " else cell for cell in row]
当在
for
的末尾使用if
时,它会限制考虑哪些项,因此版本只返回一个项,因为源列表中只有一个项与条件匹配。你知道吗同样在这种情况下,您不需要使用
replace
,您可以只使用"hello" if cell==" "
,但是如果您有多个要操作的项,您可以使用此表单。你知道吗相关问题 更多 >
编程相关推荐