Hướng dẫn two ranges in for loop python - hai phạm vi trong chuỗi vòng lặp for python

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
0

Chú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
1

Hã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
2

Quả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
3

Quảng cáo của Google, có thể dựa trên sở thích của bạn

Chúng ta có thể sử dụng 2 biến trong Loop Python không?

Không. Sử dụng Enumerate [] Chúng tôi sẽ nhận được một đối tượng liệt kê.. Using enumerate[] we'll get an enumerate object.

Bạn có thể thêm hai phạm vi Python không?

Python không có chức năng tích hợp để hợp nhất kết quả của hai phạm vi [] đầu ra.Tuy nhiên, chúng tôi vẫn có thể làm điều đó.Có một mô -đun có tên là 'itertools' có hàm chuỗi [] để kết hợp hai đối tượng phạm vi.There is a module named 'itertools' which has a chain[] function to combine two range objects.

Bạn có thể có hai đối số trong một vòng lặp?

Với hai đối số trong hàm phạm vi, trình tự bắt đầu ở giá trị thứ nhất và kết thúc một đối số trước đối số thứ hai.Các lập trình viên sử dụng x hoặc i làm biến bước.in the range function, the sequence starts at the first value and ends one before the second argument. Programmers use x or i as a stepper variable.

Làm thế nào để bạn xác định một phạm vi trong một vòng lặp trong Python?

Để lặp qua một bộ mã, một số lần được chỉ định, chúng ta có thể sử dụng hàm phạm vi [], hàm phạm vi [] trả về một chuỗi số, bắt đầu từ 0 theo mặc định và tăng thêm 1 [theo mặc định] và kết thúctại một số cụ thể.use the range[] function, The range[] function returns a sequence of numbers, starting from 0 by default, and increments by 1 [by default], and ends at a specified number.

Bài Viết Liên Quan

Chủ Đề