3

わかりましたので、次のようなことをしたいと思います:

if title and articleNumber in listOfData:
    listOfData[articleNumber].update(title, articleNumber, None, oldvariants + variants)
else:
    listOfData.append((title, articleNumber, None, variants))

構文が正しくないことに気づきましたが、何をしたいのかわからないので、使用したい構文として記述しました:)記事番号は大きな整数です(それが正しいかどうかはわかりません) 0 から始めることができます)

listOfData はコードの他の部分と同じ形式にする必要があるため、辞書を使用したくないことに注意してください。(これは残念です。解析している記事がいくつかの行に分割されているため、すでにリストにある場合はこのチェックが必要になる場合があります)

4

4 に答える 4

2

その定義により、タプルをその場で更新することはできません。その不変。ただし、完全に置き換えることはできます。

if title and articleNumber in listOfData:
    listOfData[articleNumber] = (title, articleNumber, None, oldvariants + variants)
else:
    listOfData.append((title, articleNumber, None, variants))

updateエントリを追加するための辞書メソッドであり、データのリストに1つのエントリを複数のタプルで構成しようとしている可能性があると思います。その場合は、別のアプローチが必要になります。

于 2012-08-10T13:08:03.160 に答える
0

どうしたの

listOfData[articleNumber] = (title, articleNumber, None, oldvariants + variants)
于 2012-08-10T13:07:45.583 に答える
0

キーをタプル(記事番号、タイトル)として辞書のようにやってしまいました

if (articleNumber,title) in dictionaryContent:
     dictionaryContent[(articleNumber,title)] += variants
else:
     dictionaryContent[(articleNumber,title)] = variants

そしてそれをリストに変換します:

for (articleNumber, title) in dictionaryContent.keys():
    listOfData.append((title, articleNumber, None, dictionaryContent[item]))
于 2012-08-13T09:52:27.183 に答える
0

私はあなたが意味すると思います

if title == listOfData[articleNumber][0]:
    oldvariants=lisOfData[articleNumber][3]
    listOfData[articleNumber]=(title, articleNumber, None, oldvariants + variants)
else:
    listOfData.append((title, articleNumber, None, variants))

編集

if の間違いを修正する

于 2012-08-10T15:10:40.580 に答える