如何在Python中只找到数字列表中以数字3结尾的数字?

问题描述 投票:0回答:3

问题如下:

编写一个代码来仅查找列表中以数字 3 结尾的数字。 将结果存储在名为“output_list”的空列表中。注意:对于这个你有 将整数转换为字符串并使用索引查找最后一位数字。

我们有清单:

x = [12,43,4,1,6,343,10, 34, 12, 93, 783, 330, 896, 1, 55]

首先,我尝试使用 for 循环将整数转换为字符串数据类型。

output_list = []

for i in x:

    output_list.append(str(i))

print(output_list)

输出为:

['12', '43', '4', '1', '6', '343', '10', '34', '12', '93', '783', '330', '896', '1', '55']

然后,在列表中查找以数字 3 结尾的数字。 我正在使用这个 for 循环来查找以数字 3 结尾的数字,但它不起作用。

for i in output_list:

    if(output_list[len(i) -1]=='3'):

        print(output_list)
python string list numbers
3个回答
0
投票

简单的Pythonic单行:

x = [12,43,4,1,6,343,10, 34, 12, 93, 783, 330, 896, 1, 55]
output_list = [str(i) for i in x if str(i)[-1]=="3"]
print(output_list) # ['43', '343', '93', '783']

0
投票

我不知道为什么要求您将整数转换为字符串以实现此目的。当你需要的只是:

时,这是非常低效的
x = [12,43,4,1,6,343,10, 34, 12, 93, 783, 330, 896, 1, 55]

print([v for v in x if v % 10 == 3])

输出:

[43, 343, 93, 783]

但是,为了完整起见,您可以这样做来完成简介:

print([v for v in x if str(v)[-1] == '3'])

0
投票

试试这个:

x = [12, 43, 4, 1, 6, 343, 10, 34, 12, 93, 783, 330, 896, 1, 55] y = [] 对于 x 中的 i: 如果 str(i)[-1] ==“3”: y = 我 打印(y)

© www.soinside.com 2019 - 2024. All rights reserved.