删除字典中列表中的所有值

我似乎无法弄清楚如何从字典键的列表中删除所有元素。


self.pieces = {

        'P1': [1, 0],

        'P2': [[1, 0], [0, 1]],

        'P3': [1, 0],

        'P4': [1, 0],

        'P5': [1, 0],

        'P6': [[1, 0], [1, 0], [1, 0]],

        'P7': [1, 0],

        'P8': [1, 0],

        'R1': [1, 0],

        'N1': [1, 0],

        'B1': [[1, 0], [1, 0]],

        'Q': [1, 0],

        'K': [1, 0],

        'B2': [1, 0],

        'N2': [1, 0],

        'R2': [1, 0],

    }

我努力了:


for i in self.pieces:

   filter(lambda a: a == '[]', self.pieces[i])

还:


  for i in self.pieces:

      for j in i:

           del self.pieces[i][0]

以及其他各种没有成功的随机事情。我需要它仍然拥有所有的键和 '[]' 作为没有内部元素的值


杨魅力
浏览 193回答 3
3回答

斯蒂芬大帝

您可以简单地将所有值重新分配给一个空列表pieces = {k : [] for k in pieces}要么for k in pieces:     pieces[k].clear()

长风秋雁

我想一个好的解决方案可能是:pieces = {        'P1': [1, 0],        'P2': [[1, 0], [0, 1]],        'P3': [1, 0],        'P4': [1, 0],        'P5': [1, 0],        'P6': [[1, 0], [1, 0], [1, 0]],        'P7': [1, 0],        'P8': [1, 0],        'R1': [1, 0],        'N1': [1, 0],        'B1': [[1, 0], [1, 0]],        'Q': [1, 0],        'K': [1, 0],        'B2': [1, 0],        'N2': [1, 0],        'R2': [1, 0],    }for p in pieces:   pieces[p] = []print(pieces)输出是{'P1': [], 'P2': [], 'P3': [], 'P4': [], 'P5': [], 'P6': [], 'P7': [], 'P8': [], 'R1': [], 'N1': [], 'B1': [], 'Q': [], 'K': [], 'B2': [], 'N2': [], 'R2': []}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python