list comprehension
을 사용하여 다음을 수행하는 방법이 있습니까? 아니면 이것을 달성하기위한 더 파이썬적인 방법이 있습니까?목록 이해력을 사용하여 작업을 수행하는 방법
count = 0
x = 'uewoiquewqoiuinkcnsjk'
for letter in x:
if letter in ['a', 'e', 'i', 'o', 'u']:
count += 1
최고의 프로그래밍 실습을 배우려고하십니까?
list comprehension
을 사용하여 다음을 수행하는 방법이 있습니까? 아니면 이것을 달성하기위한 더 파이썬적인 방법이 있습니까?목록 이해력을 사용하여 작업을 수행하는 방법
count = 0
x = 'uewoiquewqoiuinkcnsjk'
for letter in x:
if letter in ['a', 'e', 'i', 'o', 'u']:
count += 1
최고의 프로그래밍 실습을 배우려고하십니까?
는 발전기와 sum
를 사용할 수있는 True
또는 False
및 True
및 1
등 False
can reliably be used 및 0
생성 t 할 수있는 좋은 방법 당신이 할 수있는 그래서
>>> x.translate(None, 'aeiou')
wqwqnkcnsjk
: 그는 반대이 문자열의 문자를 삭제 str.translate를 사용하는 모든 경우에
len(x)-len(x.translate(None, 'aeiou'))
을, 대답은 10
list_comprehension과 len 함수의 조합을 사용하십시오.
sum(c in 'aeiou' for c in x)
또는 필터 + 렌 :
len(filter(lambda c: c in 'aeiou', x))
in
이후
>>> x = 'uewoiquewqoiuinkcnsjk'
>>> len([i for i in x if i in 'aeiou'])
10
>>>
와우 이것이다 완벽 해요! 감사합니다 – mangodreamz
이것은 또한 좋습니다! 감사합니다, 필터를 사용할 생각인가요 – mangodreamz
'sum'은 목록을 만들지 않기 때문에 좋습니다. – zvone