1

タイトルでこれを説明する方法が正確にわからないので、必要なものを表現するコードをいくつか示します。次のようなリストがあります。

lst = [['24', 'john', 'july, 'email@gmail.com],
       ['12', 'alice', 'auguts, 'email@hotmail.com],
       ['48', 'john', 'september, 'email@outlook.com],
       [ ....]]

同じ名前の重複したサブリストをすべて消去したい (名前は各サブリストの 2 番目のフィールドです)。この場合、最終的なリストは次のようになります。

lst = [['24', 'john', 'july, 'email@gmail.com],
       ['12', 'alice', 'auguts, 'email@hotmail.com]
       [ ....]]

重複したリストを見つけて消去するのではなく、重複したフィールドを持つリストを消去したい。うまく説明できていなかったらすみません。

ありがとう!

4

3 に答える 3

0

oldlistこれは単純なアプローチであり、組み込みの Python での命名の問題を回避するために開始リストの名前を に変更しますlist

newlist = []
for j, sublist in enumerate(oldlist):
  unique = True
  for laterlist in oldlist[j+1:]:
    if any([sublist[k] == laterlist[k] for k in range(len(sublist))]):
      unique = False
  if unique:
    newlist.append(sublist)
于 2013-09-03T03:05:21.943 に答える