Python:无循环替换字符串所有字符为指定单个字符
在Python中无循环/条件语句替换字符串所有字符为指定字符
嘿,这个需求挺有意思的,不用循环和条件语句的话,咱们完全可以靠Python的内置字符串特性和函数轻松实现,给你分享几种实用的方法:
方法一:字符串乘法(最简洁直观)
Python里字符串和整数相乘会自动重复对应次数,所以我们只需要获取原字符串的长度,再用目标字符乘以这个长度就行——全程没有任何循环或条件判断:
original_str = "hello stackoverflow" target_char = "*" result = target_char * len(original_str) print(result) # 输出 '********************'
方法二:利用str.translate和转换表
如果想基于原字符串的字符集合来做替换(虽然这里是替换所有字符,但这个方法也适用),可以用str.maketrans生成转换表,再通过translate完成替换:
original_str = "hello stackoverflow" target_char = "*" # 生成原字符串所有字符到目标字符的映射表 trans_map = dict.fromkeys(original_str, target_char) trans_table = str.maketrans(trans_map) result = original_str.translate(trans_table) print(result) # 输出 '********************'
这个方法同样没有用到循环或条件,完全依赖Python内置的字典和字符串方法。
方法三:join结合列表拼接(本质和乘法类似)
还有一种方式是用join拼接重复的目标字符,原理和字符串乘法一致,写法稍微不同:
original_str = "hello stackoverflow" target_char = "*" result = ''.join([target_char] * len(original_str)) print(result) # 输出 '********************'
这几种方法都完美符合你的要求,没有使用任何循环(for/while)或条件语句(if/else),都是利用Python的原生特性来实现的。
内容的提问来源于stack exchange,提问作者raz erez
相关产品推荐
相关产品推荐

