Sie müssen die Zeichenfolge "134"
in int zu werfen, ist für die ganze Zahl nicht gleich 134
:
if int(each.split('.')[0]) in firstNode:
Oder speichern Strings in der Liste:
firstNode =["134", "135"]
wenn Sie, wenn any finden wollen Übereinstimmung und Sie erstellen FirstNode, können Sie str.startswith verwenden, die ein Tupel von Teilstrings zu versuchen und zu entsprechen braucht, wenn wir eine .
nach eac hinzufügen h Element werden wir genau abgestimmt erhalten:
USAdetail =['134.250.7.8', '1.39.35.138', '100.43.90.10','101.43.90.10', '101.43.90.11']
firstNode = ("134.", "135.")
if any(x.startswith(firstNode) for x in USAdetail):
print("Successful")
oder speichern sie als Zeichenfolgen in einer set und verwenden in
:
USAdetail =['134.250.7.8', '1.39.35.138', '100.43.90.10','101.43.90.10', '101.43.90.11']
firstNode = {"134", "135"}
if any(x.split(".",1)[0] in firstNode for x in USAdetail):
print("Successful")
Wenn Sie nicht firstnode Schöpfung steuern Sie Casting-Stick kann in int und macht einen Satz von firstnode:
USAdetail =['134.250.7.8', '1.39.35.138', '100.43.90.10','101.43.90.10', '101.43.90.11']
firstNode = [134, 135]
st = set(firstNode)
if any(int(x.split(".",1)[0]) in st for x in USAdetail):
print("Successful")
any
wird Kurzschluss auf dem ersten Spiel, wenn es keine Übereinstimmungen gibt es falsch zurück, setzte l Ookups sind O(1)
so für große Datenmengen wird eine sehr effiziente Lösung sein.
thx für die gründliche antwort !! –