将字符串列表检查为 python 中的回文 3
Checking a list of strings as palindrome in python 3
我正在检查一个字符串列表,看列表中的每个字符串是否都是回文。
我需要一个 for 循环来测试列表中所有字符串的函数。
l=["Anna",
"Civic",
"Computer"
]
首先,我编写如下代码:
def is_it_palindrome(list):
for x in list:
if x.upper() == x[::-1].upper():
return True
else:
return False
当我 运行 这段代码时,它只有 returns 一个 True。不对 对 错
然后我更改我的代码:
def is_it_palindrome(list):
for x in list:
if x.upper() == x[::-1].upper():
print("True")
else:
print("False")
有效。但是,谁能告诉我为什么第一个不起作用而第二个是真的还是假的。
谢谢。
你的第一个 def 不起作用的原因是因为你使用 return
导致你的函数为 return 值并停止循环。
我建议你使用 map
内置函数如下,注意它可以用更好的方式编写
str_list =["Anna", "Civic", "Computer" ]
def is_it_palindrome(word):
return word.upper() == word[::-1].upper()
list(map(is_it_palindrome, str_list))
编辑 -
这也可以用 lmbda 函数编写,这是更 Pythonic 的方式,但有时我对它感到困惑。
str_list =["Anna", "Civic", "Computer" ]
list(map(lambda x: x.upper() == x[::-1].upper() , str_list ))
我正在检查一个字符串列表,看列表中的每个字符串是否都是回文。 我需要一个 for 循环来测试列表中所有字符串的函数。
l=["Anna", "Civic", "Computer" ]
首先,我编写如下代码:
def is_it_palindrome(list):
for x in list:
if x.upper() == x[::-1].upper():
return True
else:
return False
当我 运行 这段代码时,它只有 returns 一个 True。不对 对 错 然后我更改我的代码:
def is_it_palindrome(list):
for x in list:
if x.upper() == x[::-1].upper():
print("True")
else:
print("False")
有效。但是,谁能告诉我为什么第一个不起作用而第二个是真的还是假的。 谢谢。
你的第一个 def 不起作用的原因是因为你使用 return
导致你的函数为 return 值并停止循环。
我建议你使用 map
内置函数如下,注意它可以用更好的方式编写
str_list =["Anna", "Civic", "Computer" ]
def is_it_palindrome(word):
return word.upper() == word[::-1].upper()
list(map(is_it_palindrome, str_list))
编辑 - 这也可以用 lmbda 函数编写,这是更 Pythonic 的方式,但有时我对它感到困惑。
str_list =["Anna", "Civic", "Computer" ]
list(map(lambda x: x.upper() == x[::-1].upper() , str_list ))