我在DoubleTimeSeries中存储的数据为:
DoubleTimeSeries width = DoubleTimeSeries.getDoubleTimeSeries(connection, userId, "Width");
DoubleTimeSeries height = DoubleTimeSeries.getDoubleTimeSeries(connection, userId, "Height");
并且我将以上结果添加到ArrayList中:
ArrayList<String> myArray = new ArrayList<>();
for (int i = 0; i < width.size(); i++) {
myArray.add(width.get(i) + "," + height.get(i) );
}
System.out.println("My Array: \n" + myArray);
我的问题:文件中的某些宽度或高度值是空的(它是NaN),当我将它们添加到ArrayList中时,我会得到例如:
[NaN,NaN, 25,50, 55, 60, NaN,NaN, 45,56]
现在:如何防止(或忽略)这些NaN值添加到我的ArrayList中。我希望ArrayList结果为:
[25,50, 55, 60, 45,56]
谢谢
答案 0 :(得分:3)
将值与NaN进行比较,并且只有在false时才添加。
def courses():
p = 0
classes = []
while p <= 5:
name = input('Please enter the name of the class :')
classes.append(name)
p += 1
print(classes)
avg_grade = func(classes)
# Print avg_grade with float 2 number
print('avg_grade: ', "{:.1f}".format(avg_grade))
def func(classes):
g = 0
# Changed letter GPA
gpas = {
'A+': 4.0,
'A': 3.7,
'B+': 3.33,
'B': 3,
'B-': 2.7,
'C+': 2.3,
'C': 2,
'C-': 1.7,
'D+': 1.3,
'D': 1,
'D-': 0.7,
'F': 0.0,
}
# List of number grades
grades = []
while g < len(classes):
# Added class name
grade = input(f'Enter your letter grade of {classes[g]}:')
grade = grade.upper()
# Check valid letter grade
if grade in gpas:
grades.append(gpas[grade])
g += 1
else:
# Require re-enter valid letter
valid_letters = ', '.join(gpas.keys())
print('Please enter a valid letter grade. The valid letters is: ', valid_letters)
return sum(grades) / len(classes)
courses()
答案 1 :(得分:1)
只需对宽度进行测试:if(width.get(i)== NaN){i ++},不要使用for
,请使用do .. while