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 characters
waarbij a
aangezien 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 != y
maar 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 False
als 'a' in ['abc']
.
'a' in ['a', 'b', 'c']
geeft True
terug als 'a' in 'abc'
.