私はプログラミングとPythonの初心者です。私が持っているリストのリストデータは次のようになります。pythonのリストのリストで冗長データの平均を行う方法は?
year,month,date_of_month,day_of_week,births
combine_list = [[2003, 12, 29, 1, 13125],
[2003, 12, 30, 2, 14700],
[2003, 12, 31, 3, 12540],
[2003, 12, 30, 2, 14700],
[2003, 12, 30, 2, 14438],
.......................]]
として、2番目のを見ることができ、第四及び第五のエントリは、出生を除くすべてのフィールドに同じ値を持ちます。私は、冗長データを持つエントリの意味を見つけるために関数を書かれている:
def distinct(file) :
distinct_data = file
for i in range(len(file)) :
for j in range(i+1,len(file)) :
if (i[0]==j[0] and i[1]==j[1] and i[2]==j[2] and i[3]==j[3]) :
disctinct_data = (i+j)/2
return (distinct_data)
distinctdata = distinct(combine_list)
しかし、通訳は私にエラーがスローされます:
TypeErrorTraceback (most recent call last)
<ipython-input-19-70e5f515fb64> in <module>()
7 return (distinct_data)
8
----> 9 distinctdata = distinct(combine_list)
10
11
<ipython-input-19-70e5f515fb64> in distinct(file)
3 for i in range(len(file)) :
4 for j in range(i+1,len(file)) :
----> 5 if (i[0]==j[0] and i[1]==j[1] and i[2]==j[2] and i[3]==j[3]) :
6 disctinct_data = (i+j)/2
7 return (distinct_data)
TypeError: 'int' object is not subscriptable
してください、私の関数が間違っているところを教えて、何私が行うことができますそれを修正してください。
iとjは単なる整数です。リストのリストをチェックするためにcombined_list [i] [0] == combined_list [j] [0]のようなものを使いたいとします。 –
あなたのやり方ではなく、辞書を使って要素をキーとして保存する必要があります。リストはキーとして格納することはできないので、リストをタプルにパックしてキーとして保存する必要があります。 – lordingtar
@Divyesh 'i'と 'j'はどちらも整数変数であり、リストではありません。 'file [i]、file [j]'のようなデータにアクセスする必要があります。 – CaptainTrunky