Tôi có một vài vòng đơn giản như vậy:
for i in range [30, 52]:
#do some stuff here
for i in range [1, 18]:
#do some more stuff
Những gì tôi muốn là ngưng tụ điều này thành một vòng bằng cách sử dụng cú pháp của thứ tự:
for i in range[[30, 52], [1, 18]:
#do some stuff
Tôi nhận ra rằng cú pháp sẽ không hoạt động, nhưng đó là khái niệm cơ bản về những gì tôi cần. Tôi đã thấy mọi người sử dụng zip để lặp lại hai phạm vi cùng một lúc, nhưng đây không phải là thứ tôi cần.
Bất kỳ ý tưởng?
Đã hỏi ngày 21 tháng 6 năm 2015 lúc 12:21Jun 21, 2015 at 12:21
5
Từ //docs.python.org/2/l Library/itertools.html#itertools.chain:
Tạo một trình lặp lại trả về các phần tử từ lần lặp lại đầu tiên cho đến khi nó cạn kiệt, sau đó tiến hành đến phần tiếp theo, cho đến khi tất cả các vòng lặp bị cạn kiệt. Được sử dụng để xử lý các chuỗi liên tiếp như một chuỗi duy nhất.
Example:
import itertools as it
for i in it.chain[range[30, 52], range[1, 18]]:
print[i]
cho Python 3
bạn có thể lặp vào hai phạm vi với nhau
Example:
import itertools as it
for i, x in it.zip_longest[range[30, 52], range[1, 18]]:
print[i, x]
A.Raouf
2.0611 huy hiệu vàng24 Huy hiệu bạc34 Huy hiệu đồng1 gold badge24 silver badges34 bronze badges
Đã trả lời ngày 21 tháng 6 năm 2015 lúc 12:24Jun 21, 2015 at 12:24
Utdemirutdemirutdemir
25.9k10 Huy hiệu vàng61 Huy hiệu bạc81 Huy hiệu đồng10 gold badges61 silver badges81 bronze badges
1
Bạn có thể chuyển đổi hai trình lặp cho phạm vi của mình thành danh sách và sau đó kết hợp chúng với một bổ sung:
for i in list[range[30, 52]] + list[range[1, 18]]:
# something
Kalehmann
4.6236 Huy hiệu vàng24 Huy hiệu bạc35 Huy hiệu Đồng6 gold badges24 silver badges35 bronze badges
Đã trả lời ngày 23 tháng 8 năm 2019 lúc 11:07Aug 23, 2019 at 11:07
Oleg Koleg kOleg K
711 Huy hiệu bạc1 Huy hiệu đồng1 silver badge1 bronze badge
for i in range[30, 52] + range[1, 18]:
#something
Đã trả lời ngày 9 tháng 4 năm 2018 lúc 10:56Apr 9, 2018 at 10:56
2
1. Đối với vòng lặp với phạm vi
Trong các bài học trước, chúng tôi đã xử lý các chương trình và điều kiện tuần tự. Thường thì chương trình cần lặp lại một số khối nhiều lần. Đó là nơi các vòng lặp có ích. Có các toán tử vòng
for i in range[[30, 52], [1, 18]:
#do some stuff
4 và for i in range[[30, 52], [1, 18]:
#do some stuff
5 trong Python, trong bài học này, chúng tôi đề cập đến for i in range[[30, 52], [1, 18]:
#do some stuff
4.for i in range[[30, 52], [1, 18]:
#do some stuff
4 Vòng lặp lặp lại trên bất kỳ chuỗi nào. Chẳng hạn, bất kỳ chuỗi nào trong Python là một chuỗi các ký tự của nó, vì vậy chúng ta có thể lặp lại chúng bằng cách sử dụng for i in range[[30, 52], [1, 18]:
#do some stuff
4:for character in 'hello': print[character]
Một trường hợp sử dụng khác cho một vòng lặp là lặp lại một số biến số nguyên trong việc tăng hoặc giảm thứ tự. Một chuỗi số nguyên như vậy có thể được tạo bằng cách sử dụng hàm
for i in range[[30, 52], [1, 18]:
#do some stuff
9:for i in range[5, 8]: print[i, i ** 2] print['end of loop'] # 5 25 # 6 36 # 7 49 # end of loop
Hàm
for i in range[[30, 52], [1, 18]:
#do some stuff
9 tạo ra một chuỗi với các số import itertools as it
for i in it.chain[range[30, 52], range[1, 18]]:
print[i]
1, import itertools as it
for i in it.chain[range[30, 52], range[1, 18]]:
print[i]
2, ..., import itertools as it
for i in it.chain[range[30, 52], range[1, 18]]:
print[i]
3. Số cuối cùng không được bao gồm.Có một dạng giảm phạm vi [] -
import itertools as it
for i in it.chain[range[30, 52], range[1, 18]]:
print[i]
4, trong trường hợp đó MIN_VALUE được đặt hoàn toàn thành 0:for i in range[3]: print[i] # 0 # 1 # 2
Bằng cách này, chúng ta có thể lặp lại một số hành động nhiều lần:
for i in range[2 ** 2]: print['Hello, world!']
Tương tự như với IF-Else, thụt lề là những gì chỉ định hướng dẫn nào được kiểm soát bởi
for i in range[[30, 52], [1, 18]:
#do some stuff
4 và cái nào không.Phạm vi [] có thể xác định một chuỗi trống, như
import itertools as it
for i in it.chain[range[30, 52], range[1, 18]]:
print[i]
6 hoặc import itertools as it
for i in it.chain[range[30, 52], range[1, 18]]:
print[i]
7. Trong trường hợp này, for-khối sẽ không được thực thi:for i in range[[30, 52], [1, 18]:
#do some stuff
0Chúng ta hãy có ví dụ phức tạp hơn và tổng hợp các số nguyên từ 1 đến N bao quát.
for i in range[[30, 52], [1, 18]:
#do some stuff
1Hãy chú ý rằng giá trị tối đa trong phạm vi [] là
import itertools as it
for i in it.chain[range[30, 52], range[1, 18]]:
print[i]
8 để làm cho import itertools as it
for i in it.chain[range[30, 52], range[1, 18]]:
print[i]
9 bằng n trên bước cuối cùng.Để lặp lại theo trình tự giảm, chúng ta có thể sử dụng một dạng phạm vi mở rộng [] với ba đối số -
import itertools as it
for i, x in it.zip_longest[range[30, 52], range[1, 18]]:
print[i, x]
0. Khi bị bỏ qua, bước này hoàn toàn bằng 1. Tuy nhiên, có thể là bất kỳ giá trị khác không. Vòng lặp luôn bao gồm start_value và loại trừ end_value trong quá trình lặp lại:for i in range[[30, 52], [1, 18]:
#do some stuff
2Quảng cáo của Google, có thể dựa trên sở thích của bạn
2. Đặt chức năng in []
Theo mặc định, hàm
import itertools as it
for i, x in it.zip_longest[range[30, 52], range[1, 18]]:
print[i, x]
1 in tất cả các đối số của nó ngăn cách chúng bằng một không gian và đặt một biểu tượng mới sau nó. Hành vi này có thể được thay đổi bằng cách sử dụng các đối số từ khóa import itertools as it
for i, x in it.zip_longest[range[30, 52], range[1, 18]]:
print[i, x]
2 [phân tách] và import itertools as it
for i, x in it.zip_longest[range[30, 52], range[1, 18]]:
print[i, x]
3.for i in range[[30, 52], [1, 18]:
#do some stuff
3Quảng cáo của Google, có thể dựa trên sở thích của bạn