('abc')ist kein Tupel, es ist nur die Zeichenfolge 'abc'. 'abc'Verwenden Sie, um die Mitgliedschaft in einem Tupel mit der Zeichenfolge tatsächlich zu überprüfen a in ('abc',).
Dano
13
Das liegt an der doppelten Verwendung von Klammern für die Priorität von Ausdrücken und für Tupel, was zu dieser seltsamen Syntax für Einzelelement-Tupel führt
njzk2
2
Die Klammern ('abc')dienen nur zur Dekoration und können zu Verwirrung führen. Ich brauchte eine Weile, um darüber hinwegzukommen. Ich dachte auch, dass die Klammern etwas Besonderes anzeigen (vgl. Quadratische Klammern oder geschweifte Klammern, die etwas Besonderes bedeuten). In dieser Verwendung haben diese Klammern keine Bedeutung. Es gibt keinen Unterschied zwischen xyz = (x, y, z)und xyz = x, y, z. Es ist das Vorhandensein eines Kommas, das eine besondere Bedeutung hat (außer im Fall eines leeren Tupels, wo ()es eine besondere Bedeutung hat).
David Hammen
3
Sie können natürlich, geben Sie einfach 'abc', ('abc')und ['abc']in den Interpreter, und sehen , was das meint sie sind.
Nutzlos
Antworten:
136
('abc')ist das gleiche wie 'abc'. 'abc'enthält 'a'daher den Teilstring 'a' in 'abc' == True.
Wenn Sie stattdessen das Tupel möchten, müssen Sie schreiben ('abc', ).
['abc']ist eine Liste (enthält ein einzelnes Element, die Zeichenfolge 'abc'). 'a'ist kein Mitglied dieser Liste, also'a' in ['abc'] == False
('abc')ist kein Tupel. Ich denke, Sie haben das mit Tupel verwechselt ('abc',).
Tatsächlich ('abc')ist es dasselbe wie 'abc', array of characterswo sich ein aZeichen befindet, daher gibt die erste Suche Folgendes zurück True:
>>> 'a'in'abc'True
Auf der anderen Seite ['abc']handelt es sich um eine Liste von Zeichenfolgen oder eine Liste von Zeichen (Sie können sich das als 2D-Zeichenmatrix vorstellen [['a', 'b', 'c']]), wobei aals einzelnes Zeichen nicht das Mitglied der äußeren Liste ist. Tatsächlich ist es das erste Zeichen der inneren Liste:
Können Sie mir bitte sagen und / oder einen Hinweis auf die Bedeutung dieses hinzufügen'a' == ['abc'][0][0]
Ahmed
'a' == ['abc'] [0] [0] "a" ist in (Liste erstes Element> erstes
Zeichen
2
Mit anderen Worten, sobald das erste [0]angewendet wird, bleibt Ihnen etwas übrig 'a' == 'abc'[0](es gibt das erste Element der Liste an), und nach dem Anwenden des zweiten [0]bleibt Ihnen etwas übrig 'a' == 'a', das ausgewertet wird True.
Carcigenicate
2
@ Ahmed ['abc'][0]gibt dir 'abc'. 'abc'[0]gibt dir 'a'.
Ozgur
3
Denn ('abc')du bekommst 'a' als ('abc')Gegenleistung wahr.
Da ['abc']es sich jedoch um eine Array-Liste handelt, erhalten Sie 'a' als ['abc']Gegenleistung false.
Beispiel:
Eingang:('abc') == 'abc'
Ausgabe:True
Wenn wir also 'a' in ('abc') nennen, ist es dasselbe wie 'a' in 'abc', weil ('abc') kein Tupel ist, sondern 'abc' ein Zeichenfeld, in dem sich das Zeichen 'a' befindet Index 0 der Zeichenfolge 'abc'.
Andererseits ist ['abc'] eine Array-Liste, wobei 'abc' eine einzelne Zeichenfolge ist, die sich am Index 0 des Arrays ['abc'] befindet.
('abc')
ist kein Tupel, es ist nur die Zeichenfolge'abc'
.'abc'
Verwenden Sie, um die Mitgliedschaft in einem Tupel mit der Zeichenfolge tatsächlich zu überprüfena in ('abc',)
.('abc')
dienen nur zur Dekoration und können zu Verwirrung führen. Ich brauchte eine Weile, um darüber hinwegzukommen. Ich dachte auch, dass die Klammern etwas Besonderes anzeigen (vgl. Quadratische Klammern oder geschweifte Klammern, die etwas Besonderes bedeuten). In dieser Verwendung haben diese Klammern keine Bedeutung. Es gibt keinen Unterschied zwischenxyz = (x, y, z)
undxyz = x, y, z
. Es ist das Vorhandensein eines Kommas, das eine besondere Bedeutung hat (außer im Fall eines leeren Tupels, wo()
es eine besondere Bedeutung hat).'abc'
,('abc')
und['abc']
in den Interpreter, und sehen , was das meint sie sind.Antworten:
('abc')
ist das gleiche wie'abc'
.'abc'
enthält'a'
daher den Teilstring'a' in 'abc' == True
.Wenn Sie stattdessen das Tupel möchten, müssen Sie schreiben
('abc', )
.['abc']
ist eine Liste (enthält ein einzelnes Element, die Zeichenfolge'abc'
).'a'
ist kein Mitglied dieser Liste, also'a' in ['abc'] == False
quelle
('abc')
ist kein Tupel. Ich denke, Sie haben das mit Tupel verwechselt('abc',)
.Tatsächlich
('abc')
ist es dasselbe wie'abc'
,array of characters
wo sich eina
Zeichen befindet, daher gibt die erste Suche Folgendes zurückTrue
:>>> 'a' in 'abc' True
Auf der anderen Seite
['abc']
handelt es sich um eine Liste von Zeichenfolgen oder eine Liste von Zeichen (Sie können sich das als 2D-Zeichenmatrix vorstellen[['a', 'b', 'c']]
), wobeia
als einzelnes Zeichen nicht das Mitglied der äußeren Liste ist. Tatsächlich ist es das erste Zeichen der inneren Liste:>>> 'a' in ['abc'] False >>> 'a' in ['abc'][0] True >>> 'a' == ['abc'][0][0] True
quelle
'a' == ['abc'][0][0]
[0]
angewendet wird, bleibt Ihnen etwas übrig'a' == 'abc'[0]
(es gibt das erste Element der Liste an), und nach dem Anwenden des zweiten[0]
bleibt Ihnen etwas übrig'a' == 'a'
, das ausgewertet wirdTrue
.['abc'][0]
gibt dir'abc'
.'abc'[0]
gibt dir'a'
.Denn
('abc')
du bekommst 'a' als('abc')
Gegenleistung wahr.Da
['abc']
es sich jedoch um eine Array-Liste handelt, erhalten Sie 'a' als['abc']
Gegenleistung false.Beispiel:
Eingang:
('abc') == 'abc'
Ausgabe:
True
Wenn wir also 'a' in ('abc') nennen, ist es dasselbe wie 'a' in 'abc', weil ('abc') kein Tupel ist, sondern 'abc' ein Zeichenfeld, in dem sich das Zeichen 'a' befindet Index 0 der Zeichenfolge 'abc'.
Andererseits ist ['abc'] eine Array-Liste, wobei 'abc' eine einzelne Zeichenfolge ist, die sich am Index 0 des Arrays ['abc'] befindet.
Tupple Beispiel:
x = ('abc', 'def', 'mnop')
Array-Beispiel:
x = ['abc', 'def', 'mnop']
oder
x = ('abc'), y = 'abc'
Hier immer
x == y
.Aber im Falle von
'a' in ['abc']
=>x = ['abc'], y = 'abc'
Hier
x != y
aberx[0] == y
quelle
Wie andere schon erwähnt haben,
('abc')
ist kein Tupel.'a'
ist kein Element von['abc']
. Das einzige Element in dieser Liste ist'abc'
x='abc' in ['abc'] print (x) True #This will evaluate to true
Dies wird auch als wahr bewertet:
y = 'a' in ['a','b','c'] print (y) True
quelle
('abc')
ist äquivalent zu'abc'
.'a' in ('abc')
ist äquivalent zu'a' in 'abc'
.'a' in ('abc', )
gibtFalse
als zurück'a' in ['abc']
.'a' in ['a', 'b', 'c']
gibtTrue
als zurück'a' in 'abc'
.quelle