Странный результат проверки нахождения элемента в массиве
Ситуация такова, следующий код:
print('INFO = '+ str(info))
print('SERVER = '+ server)
info[1] = info[1].split(',')
print(info[1])
print(server in info[1])
Дает такой результат:
INFO = ['123', 'test,lamp,zabbix,']
SERVER = lamp
['test', 'lamp', 'zabbix', '']
False
Абсолютно не понимаю как там может быть False, в чем может быть причина? Спасибо!
Ответы (2 шт):
Автор решения: Алексей Secla
→ Ссылка
Если я правильно понимаю, то он считает info[1] как целое слово, даже если разделить его запятой. Видимо, надо менять изначальное условие info, чтоб они были отдельными словами, то есть:
info = ["123", "test", "lamp", "zabbix"]
server = "lamp"
print('INFO = '+ str(info))
print('SERVER = '+ server)
print(server in info)
Выдавать будет:
INFO = ['123', 'test', 'lamp', 'zabbix']
SERVER = lamp
True
Автор решения: Artesah
→ Ссылка
Решил! Всем спасибо за отклик.
Кому интересно:
Сделал server.encode(), и оказалось что в в конце у у него был \r. Данные заходят с заббикса, поэтому не понял почему так. Забавно ещё то что при тестировании из него \r нету, а непосредственно в работе есть.
Дописал ' server = server.replace('\r', '')' и все заработало как надо