首页 > 解决方案 > 如果条件为带有数字和字符串的数组

问题描述

我有一个包含数字和字符串的数组。我想在循环和 If 条件的帮助下创建仅包含特定数据的结果数组,但我在数据类型定义方面遇到问题。我不能将数组定义为 int,因为我也有 str 数据。

result = []
Data = ['5','10','NA','15']
for i in range(0, len(Data)):
    if Data[i] > 10 or Data[i] =="NA":
        result.append(Data[i])

我收到这样的错误:

类型错误:“str”和“int”的实例之间不支持“>”

ValueError:int() 的无效文字,基数为 10:'NA'

标签: pythonarrayslist

解决方案


您可以检查字符串是否为数字,然后使用其 int 形式进行比较。

result = []
Data = ['5','10','NA','15']
for i in range(0, len(Data)):
    if (Data[i].isdigit() and int(Data[i]) > 10) or Data[i] =="NA":
        result.append(Data[i])
print(result) # outputs ['NA', '15']

推荐阅读