Python 当列表在dict中时删除列表值

Python 当列表在dict中时删除列表值,python,python-3.x,Python,Python 3.x,我有一个dict,如下所示,我想删除值'-' {'I1': ['卤味零食', '蔬菜干'], 'I2': ['Three Squirrels/三只松鼠', '良品铺子', '---', '---']} 我如何在一行中做到这一点?你可以使用听写理解 Ex: data = {'I1': ['卤味零食', '蔬菜干'], 'I2': ['Three Squirrels/三只松鼠', '良品铺子', '---', '---']} print({k: [i for i

我有一个dict,如下所示,我想删除值
'-'

{'I1': ['卤味零食',
  '蔬菜干'],
 'I2': ['Three Squirrels/三只松鼠',
  '良品铺子',
  '---',
  '---']}

我如何在一行中做到这一点?

你可以使用听写理解

Ex:

data = {'I1': ['卤味零食',
  '蔬菜干'],
 'I2': ['Three Squirrels/三只松鼠',
  '良品铺子',
  '---',
  '---']}
print({k: [i for i in v if i.strip("-")] for k, v in data.items()})
你可以做:

{x:[y for y in data[x] if '-'*3 not in y] for x in data}
输出

{'I1':['卤味零食', '蔬菜干'], 'I2':['三只松鼠/三只松鼠', '良品铺子']}

打印({k:[i代表i,如果i.strip(“-”)代表k,v代表data.items()})