【问题标题】:How to trim the characters in the string?如何修剪字符串中的字符?
【发布时间】:2022-01-01 17:13:40
【问题描述】:

我有一个清单。

file_name = ['a.3903902.pdf','b.3432312.pdf','c.239002191.pdf','d.23423192010.pdf']

我想修剪列表中的字符串以删除包括.符号和数字在内的字符。

预期输出:

file_name = ['a.pdf','b.pdf','c.pdf','d.pdf']

【问题讨论】:

  • 输出包含一个. 符号
  • 是的格式。在输出中

标签: python python-3.x string list


【解决方案1】:
def stripped(text):
    fn = text.split(".")
    return (fn[0]+"."+fn[len(fn)-1])

file_name = 
['a.3903902.pdf','b.3432312.pdf','c.239002191.pdf','d.23423192010.pdf']
output = []
for x in file_name:
    output.append(stripped(x))
print(output)

【讨论】:

    【解决方案2】:

    您可以使用带有r'\.\d+' 模式的正则表达式。这将完全匹配 . 后跟一个或多个数字。

    >>> import re
    >>> file_name = ['a.3903902.pdf','b.3432312.pdf','c.239002191.pdf','d.23423192010.pdf']
    >>> [re.sub(r'\.\d+', '', f) for f in file_name]
    ['a.pdf', 'b.pdf', 'c.pdf', 'd.pdf']
    

    【讨论】:

    • 这个答案更好,因为它以一种有效的方式使用正则表达式(不像list.split 两次)
    【解决方案3】:
    file_name = ['{}.{}'.format(x.split('.')[0], x.split('.')[2]) for x in file_name]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-06-22
      • 1970-01-01
      • 1970-01-01
      • 2017-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-16
      相关资源
      最近更新 更多