如何打印Python中具有布尔值的列表中的词典?
我在一个列表中有一系列字典,它们都包含相同的键,但值不同。基本上,它由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,因为它未打开如何打印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
提前谢谢你 使用列表理解
[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时遇到问题,难怪它不起作用。非常感谢!