删除列表中的项目

时间:2013-12-02 22:55:34

标签: python list python-3.x

a = ['pear', 'apple?orange']

a = ['pear', 'apple!orange'] 

问号和引号可以是任何非字母或非数字字符(<,?,<,#)

如果我想删除非字母字符并列出以下列表:

b = ['apple', 'orange']

我该怎么办?使用a.remove或`a.split?

我正在使用python 3。

2 个答案:

答案 0 :(得分:1)

改为使用re.split()

import re

not_letters = re.compile(r'[^a-zA-Z]')

b = not_letters.split(a[1])

演示:

>>> import re
>>> not_letters = re.compile(r'[^a-zA-Z]')
>>> a = ['pear', 'apple?orange']
>>> not_letters.split(a[1])
['apple', 'orange']
>>> a = ['pear', 'apple!orange'] 
>>> not_letters.split(a[1])
['apple', 'orange']

答案 1 :(得分:0)

如果您希望支持Unicode的正则表达式匹配非字母字符:

non_letters = re.compile('[\\W\\d_]', flags = re.UNICODE)
non_letters.split('apple!orange')
non_letters.split('p\xEAche0poire')