Ich habe gesucht und nichts gefunden, was meinen Bedürfnissen entspricht.Python 3 | Mehrere if-Anweisungen innerhalb einer for-Schleife verwenden?
Ich habe drei for
Schleifen, die jeweils eine if
Bedingungen darin hat. Hier ist der Code:
for friend in friends:
columns = friend.split("\n")
if len(columns) == 4:
c.execute("""INSERT INTO `fb_friends`(`name`, `no_of_mutual_friends`, `no_of_new_posts`, `already_friends`) VALUES (?, ?, ?, ?)""", (columns))
for friend in friends:
columns = friend.split("\n")
if len(columns) == 3:
c.execute("""INSERT INTO `fb_friends`(`name`, `no_of_mutual_friends`, `already_friends`) VALUES (?, ?, ?)""", (columns))
for friend in friends:
columns = friend.split("\n")
if len(columns) == 2:
c.execute("""INSERT INTO `fb_friends`(`name`, `no_of_mutual_friends`, `already_friends`) VALUES (?, ?, ?)""", (columns))
Gibt es eine effizientere Möglichkeit, dies zu tun? Ich dachte an den and
Operator wie folgt:
for friend in friends:
columns = friend.split("\n")
if len(columns) == 4:
c.execute("""INSERT INTO `fb_friends`(`name`, `no_of_mutual_friends`, `no_of_new_posts`, `already_friends`) VALUES (?, ?, ?, ?)""", (columns))
and
if len(columns) == 3:
c.execute("""INSERT INTO `fb_friends`(`name`, `no_of_mutual_friends`, `already_friends`) VALUES (?, ?, ?)""", (columns))
and
if len(columns) == 2:
c.execute("""INSERT INTO `fb_friends`(`name`, `already_friends`) VALUES (?, ?)""", (columns))
jeder kann das beste oder effizienteste Weg legen nahe, dies zu iterieren dreimal über die gleiche Liste wie apposed zu tun?
Sie vermeiden können, wenn Aussagen und Pad 'columns' bis Größe 4 statt:' Spalten + [None] * (4-len (Spalten)) ' – jfs
ich Ihre Verwendung von' (Spalten) finden '** extrem ** irreführend. Es tut nichts (Sie können "(Spalten)" durch "Spalten" ersetzen und nichts wird sich ändern), aber es ist ähnlich wie "(Spalten,)" (beachten Sie das letzte Komma!), Die ein 1-Element-Tupel erstellen ... – Bakuriu