我在使用python編寫函數時遇到了一些問題。它被稱爲一個整數列表(測量),它需要檢查每一個有效的測量值(與下一個元素相比,增量爲0.1)。並且需要將它們存儲在新列表中,並在相同索引中使用true/false。Python:從測量列表中製作有效結果列表
def mark_veljavne(s):
b = []
a = 0
for f in s:
if len(s) == 1:
b.append(True)
break
if a == 0:
if abs(s[0] - s[1]) > 0.1:
b.append(True)
a += 1
else:
b.append(False)
a += 1
if a == (len(s) - 1):
if abs(s[a] - s[a - 1]) > 0.1:
b.append(True)
break
else:
b.append(False)
break
if abs(s[a] - s[a - 1]) > 0.1 and abs(s[a] - s[a + 1]) > 0.1 and a != 0:
b.append(True)
a += 1
elif a != 0:
b.append(False)
a += 1
return b
Link to test in pastebin, since they get shown in one line
def test_oznaci_veljavne(self): self.assertEqual(oznaci_veljavne([5.18, 5.907, 6.632, 7.215]), [True] * 4) self.assertEqual(oznaci_veljavne([132.3, 132.94]), [True] * 2) self.assertEqual(oznaci_veljavne([183.12]), [True]) self.assertEqual(oznaci_veljavne([205.134, 205.182, 205.190, 205.207]), [False] * 4) self.assertEqual(oznaci_veljavne([308.412, 308.416]), [False] * 2) self.assertEqual(oznaci_veljavne([205.134, 205.182, 205.190, 205.207, 250.13, 250.83, 251.6, 308.412, 308.416]), [False] * 4 + [True] * 3 + [False] * 2) self.assertEqual(oznaci_veljavne([205.134, 205.182, 308.416]), [False] * 2 + [True]) self.assertEqual(oznaci_veljavne([205.134, 205.182, 308.416, 308.999]), [False] * 2 + [True] * 2) self.assertEqual(oznaci_veljavne([100, 100.8, 205.134, 205.182, 308.416, 308.999]), [True] * 2 + [False] * 2 + [True] * 2) self.assertEqual(oznaci_veljavne([100, 100.8, 205.134, 205.182]), [True] * 2 + [False] * 2) self.assertEqual(oznaci_veljavne([100, 205.134, 205.182, 205.190, 205.207, 250.13, 250.83, 251.6, 308.412, 308.416]), [True] + [False] * 4 + [True] * 3 + [False] * 2) self.assertEqual(oznaci_veljavne([100, 205.134, 205.182, 205.190, 205.207, 250.13, 250.83, 251.6, 308.412, 308.416, 500]), [True] + [False] * 4 + [True] * 3 + [False] * 2 + [True]) self.assertSequenceEqual(oznaci_veljavne([ 5.18, 5.907, 6.632, 7.215, 132.3, 132.94, 183.12, 205.134, 205.182, 205.190, 205.207, 308.412, 308.416, 512.73, 513.20, 513.65, 918.2, 918.73]), [True] * 4 + [True] * 2 + [True] + [False] * 4 + [False] * 2 + [True] * 3 + [True] * 2)
這將是巨大的,如果你可以提供樣品輸入列表和所需的輸出列表 –
歡迎來到StackOverflow!如果您提供了迄今爲止已經嘗試的例子以及爲什麼這些嘗試未奏效,人們將能夠更好地幫助您。 –