При использовании интерпретатора выражение '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'
.