Python实现rvrse函数:读取文件忽略空白字符后反转,现有代码问题排查
现有代码的问题
- 未过滤要求忽略的字符:没有剔除
、\r、\n、\t这四类需要忽略的字符,所有原始内容会被完整保留。 - 反转粒度错误:现有代码是对「行」的顺序做反转,而非对所有有效字符的整体序列做反转。
- 返回值类型不符合要求:函数要求返回字符串类型,现有代码返回的是反转后的行组成的列表,类型不匹配。
修正方案
修正后的逻辑:先读取文件所有内容,遍历每个字符筛选出不属于忽略范围的字符,组成有效字符串后整体反转,返回结果即可。
def rvrse(fname: str) -> str: # 定义需要忽略的字符集合 ignore_chars = {' ', '\r', '\n', '\t'} valid_content = [] with open(fname, 'r', encoding='utf-8') as f: for line in f: for char in line: if char not in ignore_chars: valid_content.append(char) # 反转有效字符序列并拼接为字符串返回 return ''.join(reversed(valid_content))
针对你给出的test.txt示例,有效字符筛选后得到序列['a','b','c','d','e','f','g'],反转后拼接结果为gfedcba,和预期断言一致。
内容的提问来源于stack exchange,提问作者jordan parker
相关产品推荐
相关产品推荐

