【问题标题】:How to generate these lists of True and False?如何生成这些 True 和 False 列表?
【发布时间】:2020-10-15 00:14:17
【问题描述】:

我正在遍历一个包含 3 个项目的列表,例如:

for i in range(3):

并尝试在每个相应的迭代中生成以下列表:

[True, True, False, False, False, False]
[False, False, True, True, False, False]
[False, False, False, False, True, True]

在 python 中有什么好的方法可以做到这一点?

【问题讨论】:

  • “最有效”不是一个定义明确的概念。
  • 注释、编辑的问题和文本

标签: python python-3.x list list-comprehension


【解决方案1】:

这是一种方法:

>>> for i in range(3):
...     print([(x // 2) == i for x in range(6)])
...
[True, True, False, False, False, False]
[False, False, True, True, False, False]
[False, False, False, False, True, True]

【讨论】:

    【解决方案2】:

    试试这样:

    k = 0
    for i in range(3):
      # Other tasks
      myList = [False for x in range(4)]
      myList[k:k] = [True,True]
      print(myList)
      k += 2
    

    【讨论】:

    • 更简单:for k in range(0, 6, 2)
    • 但是@wjandrea 我认为 OP 特别想在range(3) 循环中生成这些
    • @Wasif 当然,但是i 没有被使用,所以没有意义。作为替代方案,您可以在循环内执行k = i*2
    【解决方案3】:
    L = [False, False, False, False, True, True]
    
    for _ in range(3):
        L = L[-2:] + L[:4]
        print(L)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-09-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多