development

( 'abc')의 'a'가 True이고 [ 'abc']의 'a'가 False 인 이유는 무엇입니까?

big-blog 2020. 10. 28. 08:27
반응형

( 'abc')의 'a'가 True이고 [ 'abc']의 'a'가 False 인 이유는 무엇입니까?


인터프리터를 사용할 때 표현식 'a' in ('abc')은 True를 'a' in ['abc']반환하고 False 반환합니다. 누군가이 행동을 설명 할 수 있습니까?


('abc')와 동일합니다 'abc'. 'abc'하위 문자열을 포함 'a'하므로 'a' in 'abc' == True.

대신 튜플을 원하면 ('abc', ).

['abc']목록입니다 (단일 요소 인 문자열 포함 'abc'). 'a'이 목록의 구성원이 아니므로'a' in ['abc'] == False


('abc')튜플이 아닙니다. 나는 당신이 그것을 tuple과 혼동했다고 생각합니다 ('abc',).

실제로는와 ('abc')동일 'abc'합니다 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

들어 ('abc')당신은 'A'에서 얻을 ('abc')진정한 수익을.

그러나 ['abc']배열 목록이므로 ['abc']false 반환 하면 'a'가 표시됩니다 .

예:

입력: ('abc') == 'abc'

산출: True

따라서 ( 'abc')에서 'a'를 호출하면 'abc'의 'a'와 같습니다. ( 'abc')는 튜플이 아니지만 'abc'는 문자 'a'가있는 문자의 배열이기 때문입니다. 문자열 'abc'의 인덱스 0.

반면에 [ ​​'abc']는 배열 목록이며 'abc'는 배열 [ 'abc']의 인덱스 0에있는 단일 문자열입니다.

Tupple 예 : 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


다른 사람들이 언급 ('abc')했듯이은 튜플이 아닙니다. 'a'의 요소가 아닙니다 ['abc']. 그 목록의 유일한 요소는'abc'

x='abc' in ['abc']

print (x)

True #This will evaluate to true

이것은 또한 true로 평가됩니다.

y = 'a' in ['a','b','c']

print (y)

True

('abc')와 동일합니다 'abc'.

'a' in ('abc')와 동일합니다 'a' in 'abc'.

'a' in ('abc', )로 반환 False됩니다 'a' in ['abc'].

'a' in ['a', 'b', 'c']로 반환 True됩니다 'a' in 'abc'.

참고 URL : https://stackoverflow.com/questions/31900892/why-is-a-in-abc-true-while-a-in-abc-is-false

반응형