私の心配はPython 3.5で動作していないことですが、python 2.7で完璧に動作します。人、アイテム、ストアに基づいたグループ化
質問は、私たちがに基づいてグループにコンテンツを必要です。
- 人
- 項目
- 店 ファイル
1511.txt
内のコンテンツ
は以下のとおりです。
david book 8 walmart
mike book 5 kroger
david food 3 walmart
mary food 11 target
Outp UT:私は実行するには、このコードを変更することができますどのように、これは私のコードである
'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
:
'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
私のpython 3.5で同じプログラムを実行しようと、それは誤りで出力以下に示します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]))
「Python 3.7」と言ったら、「Python 3.5」を意味すると思いますか? –
申し訳ありませんが、私はPython 3.5 – Apple