При использовании интерпретатора выражение 'a' in ('abc') возвращает True, а 'a' in ['abc'] возвращает False. Может ли кто-нибудь объяснить это поведение?
Почему "a" in ( "abc" ) True, а "a" в ['abc'] - False?
Ответ 1
('abc') совпадает с 'abc'. 'abc' содержит подстроку 'a', следовательно 'a' in 'abc' == True.
Если вам нужен кортеж, вам нужно написать ('abc', ).
['abc'] - это список (содержащий один элемент, строку 'abc'). 'a' не является членом этого списка, поэтому 'a' in ['abc'] == False
Ответ 2
('abc') не является кортежем. Я думаю, вы путаете это с кортежем ('abc',).
Собственно, ('abc') совпадает с 'abc', a array of characters, где a, поскольку символ находится в нем, поэтому первый поиск возвращает True:
>>> 'a' in 'abc'
True
С другой стороны, ['abc'] представляет собой список строк или список символов (вы можете представить его как 2-мерную матрицу символов [['a', 'b', 'c']]), где a, как один символ, не является членом внешнего списка. На самом деле это первый символ внутреннего списка:
>>> 'a' in ['abc']
False
>>> 'a' in ['abc'][0]
True
>>> 'a' == ['abc'][0][0]
True
Ответ 3
Для ('abc') вы получите 'a' in ('abc') return true.
Но для ['abc'], поскольку это список массивов, вы получаете 'a' in ['abc'] return false.
Пример:
Вход: ('abc') == 'abc'
Выход: True
Итак, если мы назовем 'a' in ('abc'), то он будет таким же, как 'a' в 'abc', потому что ('abc') не является кортежем, но 'abc' представляет собой массив символов, где символ 'a 'находится в индексе 0 строки' abc '.
С другой стороны, ['abc'] - это список массивов, где 'abc' - это одна строка, которая находится в индексе 0 массива ['abc'].
Пример примера: x = ('abc', 'def', 'mnop')
Пример массива: x = ['abc', 'def', 'mnop']
или
x = ('abc'), y = 'abc'
Здесь всегда x == y.
Но в случае 'a' in ['abc'] = >
x = ['abc'], y = 'abc'
Здесь x != y, но x[0] == y
Ответ 4
Как уже упоминалось, ('abc') не является кортежем. 'a' не является элементом ['abc']. Единственный элемент в этом списке - 'abc'
x='abc' in ['abc']
print (x)
True #This will evaluate to true
Это также будет выглядеть так:
y = 'a' in ['a','b','c']
print (y)
True
Ответ 5
('abc') эквивалентен 'abc'.
'a' in ('abc') эквивалентно 'a' in 'abc'.
'a' in ('abc', ) возвращает False как 'a' in ['abc'].
'a' in ['a', 'b', 'c'] возвращает True как 'a' in 'abc'.