我有 2 个列表,一个包含数字和字符串,一个仅包含数字:
list1 = [1, 2, 'A', 'B', 3, '4']
list2 = [1, 2, 3, 4, 5, 6]
我的目标是仅打印list2
在 中同一索引中有另一个数字(数字或字符串)的数字list1
。预期输出:
[1,2,5,6]
我尝试过以下代码:
lenght1 = len(list1)
for i in range(lenght1):
if (list1[i].isdigit()):
print(list2[i])
但我收到以下错误:
AttributeError: 'int' object has no attribute 'isdigit'
与 有相同错误.isnumber()
。
有没有办法检查特定列表元素是否是数字?
这可以通过一行代码解决,如下所示:
基本上,使用列表推导,我们过滤第一个列表,并根据第二个列表创建一个新列表。但在这个特定情况下,我们无法检查字符串是否可以变成 int。
isdigit()
仅适用于字符串。您之所以会收到错误,是因为您也循环了整数,所以它不存在。为此,我们需要再进行一次检查,然后转到 foreach。把它们做成字符串?
在线尝试!