python - Syntax explanation: .join(char for char in n if char.isalpha()), return n == n[::-1] -
def palindrome(n): n = n.lower() n = ''.join(char char in n if char.isalpha()) return n == n[::-1]
n = ''.join(char char in n if char.isalpha())
return n == n[::-1]
can break syntax of these 2 lines down process process?
(char char in n if char.isalpha())
pretty says in almost-english: creates generator - kind of unrealised list, can 1 element @ time - yield every char
char
comes n
, if char.isalpha()
(i.e. char
alphanumeric). thus, n = "the meth"
, t
, h
, e
, m
, e
, t
, h
, in order (but not space, not alphanumeric).
string.join(iterable)
can take iterable (like list, or generator), , slap string between each element. if provide empty string, smoosh elements of iterable without in between. themeth
- original string cleared of not letter or number.
string[from:to:step]
way of slicing substrings string (or subarrays array). can leave out part of it: "012345"[1::3]
take every 3rd character staring 1st (well, 2nd if you're not computer), resulting in "14"
. if step negative, from
, to
defaults reversed, , n[::-1]
means "every -1th character end start", word, reversed. "themeth"[::-1]
"themeth"
; "the meth"
palyndrome.
*) meth bad, m'kay? don't smoke it, don't deal it, don't deal it; here easy palyndrome.
Comments
Post a Comment