Python代码跳过标识数字

时间:2019-07-19 02:30:43

标签: python

从父列表中获取数字并仅创建数字子列表的python程序。但是,输出不是完整的编号列表。 没有尝试。 python的新手。

input = ['True','False',[1,2,3,4],2,1.2,4,0.44]
# str(i): changing int or float to str
    return [str(i) for i in l if (type(i) == int or type(i) == float) ]
    # append the  numbers if it is an int or a float
print(f"num_str = {num_str(input)}")

# Output:
# num_str = ['2', '1.2', '4', '0.44']
# 1 and 3 are missing in the list.

1 个答案:

答案 0 :(得分:0)

为简化起见,我将使用“更简单”的输入列表作为

input = ['True','False',1,2,3,4,2,1.2,4,0.44]

# Changed the '[1,2,3,4]' for '1,2,3,4'
# Than you can:
result_list = []
for item in input:
    if isinstance(item, (int,float)):
        result_list.append(item)
#
print(result_list)
[1, 2, 3, 4, 2, 1.2, 4, 0.44]

要使其在您提供的输入上起作用,最好是 查看输入的来源并仔细考虑是否可以将列表中的列表包含在列表中,例如

a = [ 1,2,3,[10,"a",40,[56,"b"]],5,"string"]

如果可以的话,递归检查当前项是否为Iterable类型会很有趣,否则只需添加另一个即可处理

b = [1,2,3,[5,6,"string"],7]