Hallo!
Will eine Abfrage so gestalten, dass es das erste Zeichen überprüft und danach, je nachdem ob es eine (integer) Zahl oder ein Buchstabe ist, verschiedene Zweige einschlägt.
Nur wie macht man so eine Abfrage? Alternativ ginge es ja auch damit, dass man eine Liste erstellt in die Zahlen enthalten sind (zahl = [0,1,2,...] und mit "not in" überprüft - aber muss ja auch einfacher gehen
MfG
Abfrage Zahl oder Buchstabe
Deine Beschreibung ist etwas zu oberflächlich...
Zeig mal was du bisher dafür auf die Beine gestellt hast oder was genau du machen willst. Für dein Problem gibt es wohl zu viele Lösungswege als dass man diese alle auflisten könnte...
Zeig mal was du bisher dafür auf die Beine gestellt hast oder was genau du machen willst. Für dein Problem gibt es wohl zu viele Lösungswege als dass man diese alle auflisten könnte...
Zuletzt geändert von nemomuk am Montag 15. Juni 2009, 17:32, insgesamt 1-mal geändert.
Code: Alles auswählen
In [285]: import string
In [286]: if "8foo"[0] in string.digits:
.....: print "digit"
digit
In [287]: if not "foo"[0] in string.digits:
.....: print "no digit"
no digit
http://www.kinderpornos.info
-
- User
- Beiträge: 34
- Registriert: Donnerstag 18. September 2008, 14:10
Gut, also genauer:
Ich habe eine Liste die folgendermaßen aussieht:
["Land", IP - Anzahl der Zugriffe]
also so:
["Canada", 4.16.184.37 - 2 Zugriffe, usw]
Nun will ich eine Aufsummierung durchführen, also Land - Gesamtzahl der Zugriffe. Das wollte ich so durchführen:
Pseudocode:
Hoffe jetzt ist mein Problem etwas klarer
Ich habe eine Liste die folgendermaßen aussieht:
["Land", IP - Anzahl der Zugriffe]
also so:
["Canada", 4.16.184.37 - 2 Zugriffe, usw]
Nun will ich eine Aufsummierung durchführen, also Land - Gesamtzahl der Zugriffe. Das wollte ich so durchführen:
Pseudocode:
Code: Alles auswählen
gesamtzugriffslist = []
countervariable=0
for line in countrylist:
if (erste Stelle == Buchstabe): # da bräuchte ich jetzt eine Abfrage der Art if line[0] == Buchstabe:
Land = line
gesamtzugriffslist.append(Land, countervariable)
countervariable = 0
else:
countervariable += zugriff
-
- User
- Beiträge: 34
- Registriert: Donnerstag 18. September 2008, 14:10
Mit dem Post von dill funktionierts, danke!
Code: Alles auswählen
countries = {}
for entry in log:
country, ip, access_count = entry
if country in countries:
countries[country] += access_count
else:
countries[country] = access_count
Das funktioniert, ist aber nicht schön.Mit dem Post von dill funktionierts, danke!
das problem ist dein datenmodell. das mindeste wäre sowas:
[[Land, IP, Zugriffe], [Land, IP, Zugriffe] ...]
wo kommen die daten her?
@schneider, habe das so verstanden, dass die liste flach ist...
http://www.kinderpornos.info
Ich eigentlich auch, bin dann aber auf das hier gestoßen:
und dachte dann doch, dass es sich um eine verschachtelte List handelt.
Code: Alles auswählen
for line in countrylist:
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
@SchneiderWeisse: Sowas würde man inzwischen mit einem ``defaultdict`` machen, so spart man sich die Unterscheidung ob so ein Key bereits existiert oder nicht.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
- birkenfeld
- Python-Forum Veteran
- Beiträge: 1603
- Registriert: Montag 20. März 2006, 15:29
- Wohnort: Die aufstrebende Universitätsstadt bei München
Statt ``x in string.digits`` würde man ``x.isdigit()`` nehmen. Das funktioniert dann auch für Strings mit mehr als einem Element.