替换元组中的空字符串

5
有没有一种简单的方法(最好是一行代码)可以将''替换为'-'?非常感谢。
tup = (1,2,'ABC','','','','text')

2
https://dev59.com/O0jSa4cB1Zd3GeqPGZPa - Brandon Frohbieter
3
希望你知道元组是不可变的。你可以这样做,但会创建一个新的元组(因此引用可能会断开)。 - Felix Kling
2
为什么人们特别想要一行代码? - Ned Batchelder
1个回答

16

以下代码如何?

 tuple('-' if x == '' else x for x in tup)

正如Felix Kling所评论的那样,元组是不可变的,因此您能做的最好的事情就是返回一个新的元组。


2
作为一个非常小的点,我可能会将其反转,并将其写为 tuple(x if x != '' else '-' for x in tup),因为通常预期的情况是非空。 - Adam Rosenfield
1
@Adam Rosenfield:更简洁地说:tuple(x if x else '-' for x in tup) - Adeel Zafar Soomro
2
@Adeel:如果OP想保留其他被解释为false的值,比如False0[]等,那么这种方法行不通。 - Adam Rosenfield
1
@Adam Rosenfield:您说得完全正确。尽管OP提供了示例,但我错误地假设元组是同构的。 - Adeel Zafar Soomro

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接