Mein Anliegen ist in Bezug auf meinen Code nicht in Python 3.5 ausgeführt wird, läuft es perfekt in Python 2.7.Gruppierung basierend auf Person, Artikel und Geschäft
Die Frage ist, wir zu einer Gruppe müssen die Inhalte auf Basis von:
- Person
- Artikel
- store
Der Inhalt in der Datei 1511.txt
sind:
david book 8 walmart
mike book 5 kroger
david food 3 walmart
mary food 11 target
Ausg ut:
'mike': 5, 'mary': 11, 'david': 11
'food': 14, 'book': 13
'kroger': 5, 'walmart': 11, 'target': 11
mike 5
mary 11
david 11
number of items sold by mike is 5
number of items sold by mary is 11
number of items sold by david is 11
total number of food sold 14
total number of book sold 13
total number of items sold by kroger is 5
total number of items sold by walmart is 11
total number of items sold by target is 11
Wenn ich versuche, das gleiche Programm in Python 3.5, es die folgenden Ausgang mit dem Fehler gegeben auszuführen:
'mike': 5, 'david': 11, 'mary': 11
'food': 14, 'book': 13
'target': 11, 'walmart': 11, 'kroger': 5
Traceback (most recent call last):
File "C:\Users\putch\AppData\Local\Programs\Python\Python35\1511prognew.py", line 20, in <module>
print(str(d.keys()[i]+" "+str(d.values()[i])))
TypeError: 'dict_keys' object does not support indexing
Das ist mein Code ist, wie kann ich diesen Code ändern laufen in Python 3.5?
d={}
p={}
q={}
with open("1511.txt","r") as f:
for line in f:
a=line.split()
l,m,n,o=str(a[0]), str(a[1]), int(a[2]), str(a[3])
d.setdefault(l,[]).append(n)
p.setdefault(m,[]).append(n)
q.setdefault(o,[]).append(n)
d=dict((key,sum(val)) for key,val in d.items())
p=dict((keys,sum(values)) for keys,values in p.items())
q=dict((keys,sum(values)) for keys,values in q.items())
print (d)
print (p)
print (q)
for i in range(0,len(d)):
print(str(d.keys()[i]+" "+str(d.values()[i])))
for i in range(0,len(d)):
print("number of items sold by "+d.keys()[i]+" is " +str(d.values()[i]))
for j in range(0,len(p)):
print("total number of "+str(p.keys()[j])+" sold "+str(p.values()[j]))
for j in range(0,len(q)):
print("total number of items sold by "+str(q.keys()[j])+" is "+str(q.values()[j]))
Wenn Sie "Python 3.7" sagen, können wir davon ausgehen, dass Sie "Python 3.5" meinen? –
Entschuldigung, ich habe Python 3,5 – Apple