在Python3中生成并过滤字典

在Python3中生成并过滤字典,python,list,dictionary,Python,List,Dictionary,我现在是Python的高手。我想把我的两份清单变成一本字典。名单大小相等。我能把字典做成这样: e、 g 我就是这样把它们编成字典的: dictionary = dict(zip(names, values)) 当我打印那本字典时,我得到了: {'start': 0, 'dorpstraat': 60, 'algemeen fonds': 0, 'brink': 60, 'inkomstenbelasting': 0, 'station zuid': 200, 'steenstr

我现在是Python的高手。我想把我的两份清单变成一本字典。名单大小相等。我能把字典做成这样:

e、 g

我就是这样把它们编成字典的:

    dictionary = dict(zip(names, values))
当我打印那本字典时,我得到了:

   {'start': 0, 'dorpstraat': 60, 'algemeen fonds': 0, 'brink': 60, 'inkomstenbelasting': 0, 'station zuid': 200, 'steenstraat': 100, 'kans': 0, 'ketelstraat': 100, 'velperplein': 120, 'gevangenis': 0, 'barteljorisstraat': 140, 'elecriciteitsbedrijf': 120, 'zijlweg': 140, 'houtstraat': 160, 'station west': 200, 'neude': 180, 'biltstraat': 180, 'vreeburg': 200, 'vrij parkeren': 0, 'a-kerkhof': 220, 'groote markt': 220, 'heerestraat': 240, 'station noord': 200, 'spui': 260, 'plein': 260, 'waterleiding': 150, 'lange poten': 280, 'naar de gevangenis': 0, 'hofplein': 300, 'blaak': 300, 'coolsingel': 320, 'station oost': 200, 'leidschestraat': 380, 'extra belasting': 0, 'klaverstraat': 400}
当我执行此命令时:

    non_zero_ dictionary = {k: v for k, v in dictionary.items() if v != 0}

我很想得到这本词典。之后,我想制作字典,以便键成为names(列表)中的一个元素,并且我想将所有值设置为False

既然你的问题不清楚,我冒昧猜测一下:

no_false_dictionary = {key: False for key in non_zero_ dictionary}
{name: False for name, val in zip(names, vals) if val}

那能满足你的要求吗

no_false_dictionary = {
  key: False
  for key, value in zip(names, values)
  if value != 0
}
key:False
中的第二个参数是要设置的值。在您的情况下,您似乎不关心这些值,因此最终在所有地方都设置为False

既然你不在乎价值观,为什么不就这么做呢

your_non_zero = [
  name
  for name, value in zip(names, values)
  if value != 0
]

从技术上讲,这是同一件事,但并不能把它变成一个事实。

什么,你想要的输出到底是什么?请提供一个简短的示例片段,:/另外,大括号、大括号、小括号之间的行尾不需要“\”。请不要破坏您的文章。请不要破坏您的文章。通过在Stack Exchange网络上发布,您已授予SE分发该内容的不可撤销的权利(根据)。根据SE政策,任何故意破坏行为都将恢复原状。如果您想解除此帖子与您帐户的关联,请参阅@sybren。如果这解决了您的问题,您可以接受答案。
your_non_zero = [
  name
  for name, value in zip(names, values)
  if value != 0
]