bugfix> python > 投稿

私は問題があります。このように、タプルを2つの引数に分ける必要があります(0、1)

私はこれを試してみて、それは動作しますが、私はそれがどのように見えるかが好きではありません。他にどのような方法を使用できますか?

numbers = (0, 1, 2, 3, 4, 5, 6, 7)
print(numbers[0:2], numbers[2:4], numbers[4:6], numbers[6:8])
(0, 1), (2, 3), (4, 5), (6, 7)

助けてくれてありがとう

回答 4 件
  • 使用できます zip

    list(zip(numbers[::2], numbers[1::2]))
    
    

    Ouput:

    [(0, 1), (2, 3), (4, 5), (6, 7)]
    
    

    または、リスト内包表記を使用することもできます。

    [numbers[i : i + 2] for i in range(0, len(numbers) - 1, 2)]
    
    

    出力:

    [(0, 1), (2, 3), (4, 5), (6, 7)]
    
    

  • 以下のコードはあなたを助けるでしょう

    numbers = (0, 1, 2, 3, 4, 5, 6, 7)
    res = tuple(numbers[x:x + 2]  
          for x in range(0, len(numbers), 2)) 
    res
    
    

    出力:

    ((0, 1), (2, 3), (4, 5), (6, 7))
    
    

  • このような:

    numbers = (0, 1, 2, 3, 4, 5, 6, 7)
    for i in range(0, len(numbers), 2):
        print(numbers[i:i+2])
    
    

    rangeの3番目の引数がstepを指定しているのか疑問に思っている場合は、0、2、4、6などの2つの値でその範囲をループします。

  • あなたの質問は本当に不明確ですが、達成するために

    numbers = (0, 1, 2, 3, 4, 5, 6, 7)
    print(numbers[0:2], numbers[2:4], numbers[4:6], numbers[6:8])
    
    

    しかし、柔軟なPythonコードでは、次のようにすることができます

    numbers = (0, 1, 2, 3, 4, 5, 6, 7)
    for i in range(len(numbers)):  
        if i.__index__() % 2:
            continue
        try:
            print(numbers[i], numbers[i+1])
        except IndexError:
            print(numbers[i])
    
    

あなたの答え