다음과 같이 나는 단어의 목록을 가지고 :는 특정 문자와 닫는 단어를 식별
apple
grapes
pappu
pop
seeds
내가 확인하고 문자 u
및 p
로 끝나는 모든 단어를 표시합니다. 예상 출력은 다음과 같다 : 잘못된
pappu
pop
내 코드 :
p = [w for w in theWord if re.search('(u|p)$', w)]
print p
다음과 같이 나는 단어의 목록을 가지고 :는 특정 문자와 닫는 단어를 식별
apple
grapes
pappu
pop
seeds
내가 확인하고 문자 u
및 p
로 끝나는 모든 단어를 표시합니다. 예상 출력은 다음과 같다 : 잘못된
pappu
pop
내 코드 :
p = [w for w in theWord if re.search('(u|p)$', w)]
print p
사용 str.endswith
이 regex
여기에 필요하지 않습니다.
p = [w for w in theWord if w.endswith(('p','u'))]
데모 :
>>> p = [w for w in theWord if re.search('(u|p)$', w)]
>>> for w in p:
... print w
...
pappu
pop
는이 작업을 수행 할 수 있습니다 :
는>>> theWord = ['apple', 'grapes', 'pappu', 'pop', 'seeds']
>>> p = [w for w in theWord if w.endswith(('p','u'))]
for w in p:
print w
...
pappu
pop
은 BTW 코드가 좋아, 당신은 단지가 루프 예상되는 출력을 얻을 필요가
words = ['apple','grapes','pappu','pop','seeds','']
for word in words:
if word[-1:] == 'p' or word[-1:]== 'u':
print word
각 단어의 마지막 문자를 색인하고 if 그들은 다음 staement 일치 그들과 함께
목록에 빈 문자열이 있으면 어떻게됩니까? –
해결되었지만 솔루션이 더 좋고 짧을 것입니다. – Serial
그냥 단어가 충분하면 조각을 사용하는 것이 더 좋습니다. 단어 [-1 :] == 'p' ' –
당신은 항상 슬라이스를 사용할 수는, 인덱싱 역 무엇이든 할 :
>>> theWord = ['apple', 'grapes', 'pappu', 'pop', 'seeds']
>>> [w for w in theWord if w[-1].lower() in ['p', 'u']]
['pappu', 'pop']
>>>
N.B.을 .lower()
은 P와 U로 끝나는 단어를 얻고 자 할 때만 필요합니다.
http://stackoverflow.com/questions/17905563/identify-words-closing-with-the-a-particular-character/17905567#comment26155172_17905584 –
정규 표현식을 사용해야합니다. 'theWord'는 실제로 어떻게 생겼습니까? – Blender
파일에서 읽었을 가능성이 높으며'\ n'으로 끝납니다. –
@limelights regex는 자동으로 개행을 무시합니다. –