我有这个清单:
loss = ['strike', 'customer', '6', '.']
和一个空列表:
profit = []
我想告诉Python(1)忽略列表中的非字母数字项,检查列表中的每个项目,(2)如果一个单词以s开头(用正则表达式查找字母s),请附加这个单词在新列表中(利润),(3)否则如果一个单词以c开头,则将该单词附加到新列表中(利润)。
我如何获得
profit = ['strike', 'customer']
答案 0 :(得分:3)
您可以使用字符串方法而不是正则表达式:
>>> loss = ['strike', 'customer', '6', '.']
>>> profit = [x for x in loss if x.isalnum() and x.startswith(("c", "s"))]
>>> profit
['strike', 'customer']
(实际上,考虑到它,在其他顺序中可能会更好,x.startswith(("c", "s")) and x.isalnum()
- 这样就可以跳过线性isalnum
检查,如果简单startswith
检查失败。)
答案 1 :(得分:0)
>>> for x in loss:
... if x.startswith(('s','c')): profit.append(x)
...
>>> profit
['strike', 'customer']