Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何打印Python中具有布尔值的列表中的词典?_Python_Python 3.x - Fatal编程技术网

如何打印Python中具有布尔值的列表中的词典?

如何打印Python中具有布尔值的列表中的词典?,python,python-3.x,Python,Python 3.x,我在一个列表中有一系列字典,它们都包含相同的键,但值不同。基本上,它由4个关键值组成 本质上,我想根据等参线值过滤掉接近的游乐设施。可以看出,它们是布尔格式的True/False,因此我使用了1/0,但它不断返回: 这是我目前掌握的代码: 状态=[ {'name':'Carrousel','wait':0,'isOpen':True,'single_rider':None}, {'name':'Balloon-Flite','wait':0,'isOpen':True,'single_-ride

我在一个列表中有一系列字典,它们都包含相同的键,但值不同。基本上,它由4个关键值组成

本质上,我想根据等参线值过滤掉接近的游乐设施。可以看出,它们是布尔格式的True/False,因此我使用了1/0,但它不断返回:

这是我目前掌握的代码:

状态=[ {'name':'Carrousel','wait':0,'isOpen':True,'single_rider':None}, {'name':'Balloon-Flite','wait':0,'isOpen':True,'single_-rider':None}, {'name':'Skyrush','wait':0,'isOpen':False,'single_rider':None}, {'name':'sooperdooperLooper','wait':5,'isOpen':True,'single_rider':None}, {'name':'Fahrenheit','wait':20,'isOpen':True,'single_-rider':None} ] 我的身份是: 如果状态[i]['isOpen'==1]: 打印i 根据列表中的值,我想打印等参值为True的骑乘设施

大概是这样的:

[ {'name':'Carrousel','wait':0,'isOpen':True,'single_rider':None}, {'name':'Balloon-Flite','wait':0,'isOpen':True,'single_-rider':None}, {'name':'sooperdooperLooper','wait':5,'isOpen':True,'single_rider':None}, {'name':'Fahrenheit','wait':20,'isOpen':True,'single_-rider':None} ] 如果查看结果,会忽略Skyrush,因为它未打开


提前谢谢你

使用列表理解

[el for el in status if el["isOpen"]]
这将迭代每个dict in状态,并过滤出isOpen为真的dict

如果要修改当前技术以使其正常工作,应执行以下操作:

for i in status:
    if i['isOpen']:
        print(i)

这里,我指的是列表中的一个单独的dict。然后检查其等参值是否为真,如果为真,则打印它。

使用列表理解

[el for el in status if el["isOpen"]]
这将迭代每个dict in状态,并过滤出isOpen为真的dict

如果要修改当前技术以使其正常工作,应执行以下操作:

for i in status:
    if i['isOpen']:
        print(i)

这里,我指的是列表中的一个单独的dict。然后检查其isOpen是否为真,如果为真,则打印它。

下面是一些使用Python lambda的示例

使用itertools


下面是一些使用Python lambda的示例

使用itertools

试试这个:

for item in status:
  if item['isOpen']:
      print (item)
试试这个:

for item in status:
  if item['isOpen']:
      print (item)

这里需要解决两件事:

for i in status:
i是列表中的一个元素。让我们给它起个更好的名字:

for item in status:
此外,这意味着您不能执行状态[i]或状态[item]。Istead,直接使用项目。最后,您需要具有键“isOpen”的值:

请注意,不应将比较==放在此处的括号内。事实上,由于该值是布尔值True或False,因此根本不需要进行比较

最后,您可以打印项目:

综上所述:

for item in status:
    if item['isOpen']:
        print(item)

这里需要解决两件事:

for i in status:
i是列表中的一个元素。让我们给它起个更好的名字:

for item in status:
此外,这意味着您不能执行状态[i]或状态[item]。直接使用。最后,您需要具有键“isOpen”的值:

请注意,不应将比较==放在此处的括号内。事实上,由于该值是布尔值True或False,因此根本不需要进行比较

最后,您可以打印项目:

综上所述:

for item in status:
    if item['isOpen']:
        print(item)

您的问题在于如何定义for循环。如果希望使用按列表元素访问的for循环,则代码应如下所示:

我的身份是: 如果我['Ispen']: 普林蒂 如果要按索引访问列表中的元素,应使用以下命令:

对于处于Rangelen状态的i: 如果状态[i]['isOpen']: 打印状态[i]
您成功地结合了导致问题的技术。正如其他人所说,要检查它是否是布尔值,您只需要通过键访问布尔值,而不是计算为1。

您的问题在于如何定义for循环。如果希望使用按列表元素访问的for循环,则代码应如下所示:

我的身份是: 如果我['Ispen']: 普林蒂 如果要按索引访问列表中的元素,应使用以下命令:

对于处于Rangelen状态的i: 如果状态[i]['isOpen']: 打印状态[i]
您成功地结合了导致问题的技术。正如其他人所说,要检查它是否是布尔值,您只需要通过键访问布尔值,而不是计算为1。

命名变量会有很大帮助。变量状态是一个字典列表。i通常用作索引。这是您的代码:

for i in status:
    if (status[i]['isOpen' == 1]):
        print (i)
变量i是一个字典,而不是列表中的索引。如果你想要索引,你应该这样做

for i in range(len(status)):
但是您确实不需要将索引放入列表中。改为:

for rideDict in status:
     if rideDict['isOpen']: 
          print rideDict

对于布尔值,如果rideDict['isOpen'],则只需测试该值。如果rideDict['isOpen']==True,您可以这样做,但这不是必需的。

命名变量会有很大帮助。变量状态是一个字典列表。i通常用作索引。这是您的代码:

for i in status:
    if (status[i]['isOpen' == 1]):
        print (i)
变量i是一个词汇 ry,而不是列表中的索引。如果你想要索引,你应该这样做

for i in range(len(status)):
但是您确实不需要将索引放入列表中。改为:

for rideDict in status:
     if rideDict['isOpen']: 
          print rideDict

对于布尔值,如果rideDict['isOpen'],则只需测试该值。如果rideDict['isOpen']==True,您可以这样做,但这不是必需的。

我会使用d来避免混淆。如果您指的是第二种技术,那么是的,使用I来指除索引以外的任何内容都是不好的做法。它很有效!非常感谢你的帮助!我在访问内部的个人dict时遇到问题,难怪它不起作用。非常感谢!我会用d来避免混淆。如果你指的是第二种技术,那么是的,用I来指除索引以外的任何东西都是不好的做法。它有效!非常感谢你的帮助!我在访问内部的个人dict时遇到问题,难怪它不起作用。非常感谢!