如果我有一个列表,如
List1 = ['I- m', 'I-m', 'I- m-', 'I@ am']
L2=[]
for l1 in list1:
L2.append(l1.strip('@-'))
如果-
或@
连接到由空格分隔的单词,如何删除-@
或L2=['I m','I-m', 'I m', 'I am']
。例如,我必须从项目0,2和3中删除 <TimePicker
android:layout_width="300dp"
android:layout_height="300dp"
android:id="@+id/timePicker" />
但不是1,因为I-m已连接且是同一个单词。
项目0,2和3之间有空格。
结果应如下所示:
TimePicker timePicker = (TimePicker) findViewById(R.id.timePicker);
timePicker.setIs24HourView(true); // to set 24 hours mode
timePicker.setIs24HourView(false); // to set 12 hours mode
但是,我可以从项目的第二个单词中删除@。我无法从任何项目的第一个单词中删除。
我希望这是有道理的。
答案 0 :(得分:2)
如果字符串中有空格,您可以使用re.sub
将字符替换为空字符串:
>>> [re.sub(r'[@-]',r'',i) if ' ' in i else i for i in List1]
['I m', 'I-m', 'I m', 'I am']
答案 1 :(得分:1)
最好的方法是迭代列表并应用正则表达式
import re
map(lambda x: re.sub("[\-@]([ ]|$)", "\g<1>",x), ['I- m', 'I@m', 'I-m', 'I- m-', 'I@ am'])
['I m', 'I@m', 'I-m', 'I m', 'I am']