python-3.x - 创建一个仅从数字列表中返回回文的列表
问题描述
我正在创建一个程序,该程序将首先检查列表中的数字是否为回文,然后仅打印出回文。我是 Python 新手,所以我不确定如何正确地将这些附加到新列表中。
inp= input()
list1 = []
while int(inp) != 0:
list1.append(inp)
inp= input()
def isPalindrome(N):
str1 = "" + str(N)
len1 = len(str1)
for i in range(int(len1 / 2)):
if (str1[i] != str1[len1 - 1 - i]):
return False
return True
list2 = []
for i in list1:
if i == isPalindrome:
list2.append(i(list1))
print(list2)
例如,
输入:
99
23
45
1221
0
输出:
99 1221
解决方案
您的代码中只是有一些语法错误,但您的逻辑是正确的。这是您打算做的,
inp= int(input())
list1 = []
while inp != 0:
list1.append(inp)
inp = int(input())
def isPalindrome(N):
str1 = "" + str(N)
len1 = len(str1)
for i in range(int(len1 / 2)):
if (str1[i] != str1[len1 - 1 - i]):
return False
return True
list2 = []
for i in list1:
if isPalindrome(i):
list2.append(i)
print(list2)
此外,如果你想让你的程序比我推荐的短得多,
def isPalindrome(N):
str1 = str(N)
if str1[::-1] == str1:
return True
else:
return False
只是语法略有变化,但逻辑与您的相同。它使用反向的字符串切片。
此外,我已经使用int(input())
您所说的将输入类型转换为整数list2
,如果您不想要整数,那么只需将所有替换int(input())
为input()
并将您的 if 条件更改int(inp)!=0
为开头
推荐阅读
- java - 集成还是单元测试?在不访问外部系统的情况下测试类
- wordpress - 在 Wordpress 网站的会员注册表中添加自定义流程
- angularjs - Angularjs fullcalendar拖放 - 获取拖放对象的值
- angular - 如何在特定功能模块中创建 Angular 6 单例服务
- c - “C 中的 strcat 函数假定目标字符串大到足以容纳源字符串及其自身的内容”中的混淆。
- android - Android - 将边框动态应用于一组 TextView
- javascript - 为什么我会收到此错误消息?“未捕获的 Initmap 不是函数”
- swift - 工作应用程序中出现意外错误 -> 未找到“Private/FIRComponentContainerInternal.h”文件
- javascript - 使用中间件处理承诺后无法识别获取的 API 数据
- android - 如何在drawerlayout中调用imageview