【问题标题】:How to print the first true and first false in python如何在python中打印第一个真和第一个假
【发布时间】:2022-11-03 00:36:32
【问题描述】:

我有一个时间集合,每一行的值要么是真,要么是假,我想打印出第一行真,然后跳过直到它变成假,然后在整个文件中交替打印

如果到对象的速度和距离小于给定数字,这只是我拥有真实值的集合的一个示例

我想要它打印什么

关于如何在 python 中执行此操作的任何想法

【问题讨论】:

  • 将变量 (current_bool) 设置为 None。在每一行上,检查bool 是否与current_bool 不同。如果是,则打印该行。对比之后,在每一行,将current_bool 设置为bool 的值。这将仅打印 bool 值更改的那些行
  • 这将如何在代码中工作?我是新手,我可以理解您答案中的逻辑,但我很难编写代码
  • 刚刚为您添加了一个代码示例。

标签: python-3.x read.csv


【解决方案1】:

我已获取您的数据并将其转换为 Python dict 结构的 list。您可以轻松地使用列表列表 ([ [..], [..], ... ]),但 dict 让您在开始时更容易想象

data = [
    {'id': 1, "time": "10/03/2022 01:20", "bool": True},
    {'id': 2, "time": "10/03/2022 01:20", "bool": True},
    {'id': 3, "time": "10/03/2022 01:20", "bool": True},
    {'id': 4, "time": "10/03/2022 01:20", "bool": False},
    {'id': 5, "time": "10/03/2022 01:20", "bool": False},
    {'id': 6, "time": "10/03/2022 01:20", "bool": False},
    {'id': 7, "time": "10/03/2022 15:13", "bool": True},
    {'id': 8, "time": "10/03/2022 15:13", "bool": True},
    {'id': 9, "time": "10/03/2022 15:13", "bool": False},
    {'id': 10, "time": "10/03/2022 15:13", "bool": True}
]

current_bool=None
for row in data:
    if current_bool != row['bool']:
        print(row)
    current_bool=row['bool']

输出是:

{'id': 1, 'time': '10/03/2022 01:20', 'bool': True}
{'id': 4, 'time': '10/03/2022 01:20', 'bool': False}
{'id': 7, 'time': '10/03/2022 15:13', 'bool': True}
{'id': 9, 'time': '10/03/2022 15:13', 'bool': False}
{'id': 10, 'time': '10/03/2022 15:13', 'bool': True}   

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-04-04
    • 2022-08-23
    • 2016-04-06
    • 1970-01-01
    • 2017-12-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多