Hướng dẫn start loop from specific index python - bắt đầu vòng lặp từ python chỉ mục cụ thể

Cách tốt nhất để đặt chỉ mục bắt đầu khi lặp lại một danh sách trong Python. Ví dụ, tôi có một danh sách các ngày trong tuần - Chủ nhật, Thứ Hai, Thứ Ba, ... Thứ Bảy - nhưng tôi muốn lặp lại trong danh sách bắt đầu từ Thứ Hai. Thực hành tốt nhất để làm điều này là gì?

Khi được hỏi ngày 27 tháng 5 năm 2011 lúc 6:28May 27, 2011 at 6:28

Hướng dẫn start loop from specific index python - bắt đầu vòng lặp từ python chỉ mục cụ thể

Vincent Catalanovincent CatalanoVincent Catalano

2.1994 Huy hiệu vàng21 Huy hiệu bạc29 Huy hiệu đồng4 gold badges21 silver badges29 bronze badges

3

Bạn có thể sử dụng cắt lát:

for item in some_list[2:]:
    # do stuff

Điều này sẽ bắt đầu ở yếu tố thứ ba và lặp lại đến cuối.

Đã trả lời ngày 27 tháng 5 năm 2011 lúc 6:31May 27, 2011 at 6:31

Bjorn Pollexbjorn PollexBjörn Pollex

73.6K28 Huy hiệu vàng192 Huy hiệu bạc277 Huy hiệu đồng28 gold badges192 silver badges277 bronze badges

8

islice có lợi thế là nó không cần phải sao chép một phần của danh sách

from itertools import islice
for day in islice(days, 1, None):
    ...

Đã trả lời ngày 27 tháng 5 năm 2011 lúc 6:49May 27, 2011 at 6:49

Hướng dẫn start loop from specific index python - bắt đầu vòng lặp từ python chỉ mục cụ thể

John La Rooyjohn La RooyJohn La Rooy

Phù bằng vàng 287K5151 gold badges359 silver badges500 bronze badges

Tại sao mọi người sử dụng cắt danh sách (chậm vì nó sao chép vào danh sách mới), nhập chức năng thư viện hoặc cố gắng xoay một mảng cho việc này?

Sử dụng vòng lặp bình thường với

from itertools import islice
for day in islice(days, 1, None):
    ...
0 (trong đó
from itertools import islice
for day in islice(days, 1, None):
    ...
1 và
from itertools import islice
for day in islice(days, 1, None):
    ...
2 là các đối số tùy chọn).

Ví dụ: lặp qua một mảng bắt đầu từ INDEX 1:

for i in range(1, len(arr)):
    print(arr[i])

Đã trả lời ngày 14 tháng 7 năm 2020 lúc 20:05Jul 14, 2020 at 20:05

Hướng dẫn start loop from specific index python - bắt đầu vòng lặp từ python chỉ mục cụ thể

1

Bạn luôn có thể lặp bằng cách sử dụng một chỉ mục để vòng lặp kiểu C thông thường:

for i in range(len(l)-1):
    print l[i+1]

Luôn luôn tốt hơn để làm theo phong cách "vòng lặp trên mọi yếu tố" bởi vì đó là điều bình thường để làm, nhưng nếu nó cản đường bạn, chỉ cần nhớ phong cách thông thường cũng được hỗ trợ, luôn luôn được hỗ trợ.

Đã trả lời ngày 27 tháng 5 năm 2011 lúc 6:35May 27, 2011 at 6:35

LPRSDLPRSDlprsd

82.4K47 Huy hiệu vàng132 Huy hiệu bạc167 Huy hiệu đồng47 gold badges132 silver badges167 bronze badges

Stdlib sẽ móc bạn lên con trai!

from itertools import islice
for day in islice(days, 1, None):
    ...
3:

#!/usr/local/bin/python2.7

from collections import deque

a = deque('Monday Tuesday Wednesday Thursday Friday Saturday Sunday'.split(' '))
a.rotate(3)
deque(['Friday', 'Saturday', 'Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday'])

Bjorn Pollex

73.6K28 Huy hiệu vàng192 Huy hiệu bạc277 Huy hiệu đồng28 gold badges192 silver badges277 bronze badges

islice có lợi thế là nó không cần phải sao chép một phần của danh sáchMay 27, 2011 at 9:16

Hướng dẫn start loop from specific index python - bắt đầu vòng lặp từ python chỉ mục cụ thể

Đã trả lời ngày 27 tháng 5 năm 2011 lúc 6:49synthesizerpatel

John La Rooyjohn La Rooy5 gold badges72 silver badges90 bronze badges

Phù bằng vàng 287K51

days = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']
for d in days[days.index('Monday'):] :
   print d

Tại sao mọi người sử dụng cắt danh sách (chậm vì nó sao chép vào danh sách mới), nhập chức năng thư viện hoặc cố gắng xoay một mảng cho việc này?May 27, 2011 at 7:17

Sử dụng vòng lặp bình thường với

from itertools import islice
for day in islice(days, 1, None):
    ...
0 (trong đó
from itertools import islice
for day in islice(days, 1, None):
    ...
1 và
from itertools import islice
for day in islice(days, 1, None):
    ...
2 là các đối số tùy chọn).juanchopanza

Ví dụ: lặp qua một mảng bắt đầu từ INDEX 1:32 gold badges393 silver badges468 bronze badges

1

Đã trả lời ngày 14 tháng 7 năm 2020 lúc 20:05

>>> def rotated_sequence(seq, start_index):
...     n = len(seq)
...     for i in xrange(n):
...         yield seq[(i + start_index) % n]
...
>>> s = 'su m tu w th f sa'.split()
>>> list(rotated_sequence(s, s.index('m')))
['m', 'tu', 'w', 'th', 'f', 'sa', 'su']
>>>

Bạn luôn có thể lặp bằng cách sử dụng một chỉ mục để vòng lặp kiểu C thông thường:May 27, 2011 at 8:52

Luôn luôn tốt hơn để làm theo phong cách "vòng lặp trên mọi yếu tố" bởi vì đó là điều bình thường để làm, nhưng nếu nó cản đường bạn, chỉ cần nhớ phong cách thông thường cũng được hỗ trợ, luôn luôn được hỗ trợ.John Machin

Đã trả lời ngày 27 tháng 5 năm 2011 lúc 6:3511 gold badges138 silver badges184 bronze badges

2

LPRSDLPRSD

dayNames = [ 'Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 
            'Friday', 'Saturday',  ]

startDayName = 'Monday'

startIndex = dayNames.index( startDayName )
print ( startIndex )

rotatedDayNames = dayNames[ startIndex: ] + dayNames [ :startIndex ]

for x in rotatedDayNames:
    print ( x )

82.4K47 Huy hiệu vàng132 Huy hiệu bạc167 Huy hiệu đồngMay 27, 2011 at 8:19

Stdlib sẽ móc bạn lên con trai!slothrop

Bjorn Pollex6 silver badges7 bronze badges

Đã trả lời ngày 27 tháng 5 năm 2011 lúc 9:16

import random
arr = ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"]
cln = len(arr)
start = random.randint(0, cln-1)
i = 0
while i < cln:
    pos = i+start
    print(arr[pos if pos<cln else pos-cln])
    i += 1

SynthesizerPatelSynthesizerPatelFeb 2 at 19:52

Làm thế nào để bạn bắt đầu một vòng lặp tại một chỉ mục cụ thể trong Python?

Python for Loop Index Bắt đầu từ 1 bằng cách sử dụng phương thức cắt [Bắt đầu:] Chúng ta có thể dễ dàng thực hiện nhiệm vụ cụ thể này. Trong ví dụ này, chúng ta phải bắt đầu giá trị chỉ mục là 1 và đặt 'Bắt ​​đầu' thành chỉ mục mong muốn.By using the slicing method [start:] we can easily perform this particular task. In this example, we have to start the index value as 1 and set 'start' to be the desired index.

Làm cách nào để tạo một vòng lặp chỉ mục?

Bạn có thể truy cập chỉ mục ngay cả khi không sử dụng Enumerate () ...
Sử dụng một vòng lặp, lặp qua chiều dài của my_list. Chỉ số biến vòng lặp bắt đầu từ 0 trong trường hợp này ..
Trong mỗi lần lặp, nhận giá trị của danh sách tại chỉ mục hiện tại bằng cách sử dụng giá trị câu lệnh = my_list [index] ..
In giá trị và chỉ mục ..

Python có bắt đầu từ 0 không?

Đối với các vòng sử dụng phạm vi () bắt đầu trạng thái giá trị số nguyên mà tại đó chuỗi bắt đầu, nếu điều này không được bao gồm thì bắt đầu bắt đầu ở 0.if this is not included then start begins at 0.

Chỉ số vòng lặp trong Python là gì?

Python cho vòng lặp với chỉ mục bằng cách sử dụng hàm liệt kê () hàm theo dõi số lượng các phần tử mà chúng ta đang lặp lại trong vòng lặp.Trong ví dụ sau, chúng tôi đã sử dụng hàm liệt kê (), để truy cập cả chỉ số và phần tử hiện tại trong quá trình lặp với vòng lặp.enumerate() function keeps track of the count of elements we are iterating in the loop. In the following example, we have used enumerate() function, to access both current index and element during an iteration with for loop.