У меня есть список чисел, которые я читаю слева направо. Каждый раз, когда я сталкиваюсь с изменением знака при чтении последовательности, я хочу сосчитать ее.Python - изменения счетного знака
X = [-3,2,7,-4,1,-1,1,6,-1,0,-2,1]
X = [-, +, +, -, +, -, +, +, -, -,-,+]
Итак, в этом списке 8 изменений знака.
Когда товар [0]
(в данном случае -3) отрицательный, считается заменой знака. Кроме того, любое 0 в списке считается [-]
.
Любая помощь была бы принята с благодарностью.
Если это помогает любому, отвечающему, вот решение Haskell: 'signChanges xs = sum $ zipWith (\ xy -> if (x> 0) == (y> 0), то 0 else 1) (1: xs) xs ' –
Вот ссылка для тех, кто ищет [** решение, в котором нуль обрабатывается без изменений **] (http://stackoverflow.com/a/40804510/2192488). –