remove_punctuation.py 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. import string
  2. import re
  3. def remove_punctuation_from_array(stringvalue):
  4. """
  5. 删除字符串数组中每个字符串的标点符号
  6. 参数:
  7. stringvalue: 包含多个字符串的列表/数组
  8. 返回:
  9. 删除标点符号后的新字符串列表
  10. """
  11. # 创建翻译表,删除所有标点符号
  12. translator = str.maketrans('', '', string.punctuation)
  13. # 对数组中的每个字符串应用翻译表
  14. cleaned_strings = [text.translate(translator) for text in stringvalue]
  15. return cleaned_strings
  16. def remove_punctuation_regex(text_list):
  17. """
  18. 方法2: 使用正则表达式 - 灵活且易读
  19. """
  20. return [re.sub(r'[^\w\s]', '', text) for text in text_list]
  21. def remove_punctuation_filter(text_list):
  22. """
  23. 方法3: 使用列表推导式和isalnum() - 简单直观
  24. """
  25. return [''.join(char for char in text if char.isalnum() or char.isspace())
  26. for text in text_list]
  27. if __name__ == "__main__":
  28. # 示例:假设stringvalue存储了三个字符串
  29. stringvalue = [
  30. "Hello, World!",
  31. "Python's great, isn't it?",
  32. "Wait... what?! Really?!"
  33. ]
  34. print("原始字符串数组:")
  35. for i, s in enumerate(stringvalue, 1):
  36. print(f"{i}. '{s}'")
  37. # 删除标点符号
  38. result = remove_punctuation_from_array(stringvalue)
  39. print("\n删除标点符号后:")
  40. for i, s in enumerate(result, 1):
  41. print(f"{i}. '{s}'")
  42. print("\n" + "="*60)
  43. print("其他方法(如果需要):")
  44. print("="*60)
  45. # 方法2: 使用正则表达式
  46. result_regex = remove_punctuation_regex(stringvalue)
  47. print("\n正则表达式方法:")
  48. for i, s in enumerate(result_regex, 1):
  49. print(f"{i}. '{s}'")
  50. # 方法3: 使用isalnum过滤
  51. result_filter = remove_punctuation_filter(stringvalue)
  52. print("\nisalnum过滤方法:")
  53. for i, s in enumerate(result_filter, 1):
  54. print(f"{i}. '{s}'")