Waarom is ‘a’ in (‘abc’) True terwijl ‘a’ in [‘abc’] False is?

Bij gebruik van de interpreter geeft de uitdrukking 'a' in ('abc')True terug, terwijl 'a' in ['abc']False retourneert. Kan iemand dit gedrag uitleggen?


Antwoord 1, autoriteit 100%

('abc')is hetzelfde als 'abc'. 'abc'bevat de substring 'a', vandaar 'a' in 'abc' == True.

Als je in plaats daarvan de tuple wilt, moet je ('abc', )schrijven.

['abc']is een lijst (met een enkel element, de string 'abc'). 'a'is geen lid van deze lijst, dus 'a' in ['abc'] == False


Antwoord 2, autoriteit 36%

('abc')is geen tuple. Ik denk dat je dat verward met tuple ('abc',).

Eigenlijk is ('abc')hetzelfde als 'abc', een array of characterswaarbij aaangezien het karakter erin zit, daarom retourneert de eerste zoekopdracht True:

>>> 'a' in 'abc'
True

Aan de andere kant is ['abc']een lijst met tekenreeksen of een lijst met tekenreeksen (je kunt het zien als een 2-d matrix van tekens [['a', 'b', 'c']])waarbij a, als enkel teken, niet het lid is van de buitenste lijst. In feite is dit het eerste teken van de binnenste lijst:

>>> 'a' in ['abc']
False
>>> 'a' in ['abc'][0]
True
>>> 'a' == ['abc'][0][0]
True

Antwoord 3, autoriteit 2%

Voor ('abc')krijg je ‘a’ in ('abc')return true.

Maar voor ['abc']omdat het een arraylijst is, krijg je ‘a’ in ['abc']return false.

Voorbeeld:

Invoer:('abc') == 'abc'

Uitvoer:True

Dus als we ‘a’ noemen in (‘abc’), is het hetzelfde als ‘a’ in ‘abc’ omdat (‘abc’) geen tuple is, maar ‘abc’ is een array van tekens waarbij teken ‘a ‘is in index 0 van string’ abc ‘.

Aan de andere kant is [‘abc’] een arraylijst waarbij ‘abc’ een enkele tekenreeks is die zich op index 0 van array [‘abc’] bevindt.

Tupple Voorbeeld:x = ('abc', 'def', 'mnop')

Arrayvoorbeeld:x = ['abc', 'def', 'mnop']

of

x = ('abc'), y = 'abc'

Hier altijd x == y.

Maar in het geval van 'a' in ['abc']=>

x = ['abc'], y = 'abc'

Hier x != ymaar x[0] == y


Antwoord 4

Zoals anderen al hebben vermeld, is ('abc')geen tuple. 'a'is geen element van ['abc']. Het enige element in die lijst is 'abc'

x='abc' in ['abc']
print (x)
True #This will evaluate to true

Dit wordt ook geëvalueerd als waar:

y = 'a' in ['a','b','c']
print (y)
True

Antwoord 5

('abc')is gelijk aan 'abc'.

'a' in ('abc')is gelijk aan 'a' in 'abc'.

'a' in ('abc', )retourneert Falseals 'a' in ['abc'].

'a' in ['a', 'b', 'c']geeft Trueterug als 'a' in 'abc'.

Other episodes