Hướng dẫn how to iterate through a list in python without a loop - cách lặp qua danh sách trong python mà không cần vòng lặp

2

Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.

Tôi muốn in tất cả các yếu tố trong phạm vi từ 2 đến 8 sau đó sử dụng cho vòng lặp:for loop:

E.g:

for i in range(2,8):
    print(i)

Phương pháp tốt nhất để lặp lại mà không cần sử dụng cho, hoặc trong khi vòng lặp, làm giảm độ phức tạp về thời gian?for, or while loop, which reduces the time complexity?

Hướng dẫn how to iterate through a list in python without a loop - cách lặp qua danh sách trong python mà không cần vòng lặp

Hỏi ngày 11 tháng 8 năm 2016 lúc 2:56Aug 11, 2016 at 2:56

1

Làm thế nào về việc sử dụng đệ quy?

def iterate(lst, start, end):
  if start < 0 or end >= len(lst) or start > end:
    return
  print(lst[start])
  iterate(lst, start + 1, end)

Gọi nó như thế này:

iterate([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 2, 8)

Đã trả lời ngày 11 tháng 8 năm 2016 lúc 3:02Aug 11, 2016 at 3:02

Hướng dẫn how to iterate through a list in python without a loop - cách lặp qua danh sách trong python mà không cần vòng lặp

Óscar Lópezóscar LópezÓscar López

228K35 Huy hiệu vàng305 Huy hiệu bạc378 Huy hiệu đồng35 gold badges305 silver badges378 bronze badges

2

Hãy lấy danh sách mẫu này:

>>> mylist
['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine']

Bây giờ, hãy in các yếu tố 2 đến 8 mà không cần lặp:

>>> ' '.join(mylist[2:9])
'two three four five six seven eight'

Ở đây,

iterate([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 2, 8)
5 bảo Python sử dụng các chỉ số bắt đầu bằng
iterate([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 2, 8)
6 và tiếp tục đến nhưng không bao gồm
iterate([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 2, 8)
7.

Đã trả lời ngày 11 tháng 8 năm 2016 lúc 2:59Aug 11, 2016 at 2:59

Hướng dẫn how to iterate through a list in python without a loop - cách lặp qua danh sách trong python mà không cần vòng lặp

John1024John1024John1024

106K13 Huy hiệu vàng128 Huy hiệu bạc162 Huy hiệu Đồng13 gold badges128 silver badges162 bronze badges

6

Bằng cách cắt danh sách

>>> l = [1,2,3,4,5,6,7,8,9,10]
>>> print(l[1:8])
[2, 3, 4, 5, 6, 7, 8] # output in console

Để có được tổng kết các giá trị trong

iterate([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 2, 8)
8 sử dụng
iterate([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 2, 8)
9

>>> sum(l[1:8])
35 # output

Chỉnh sửa vì @PZP:

Nếu bạn muốn in tất cả các yếu tố giữa INDEX 2 và INDEX 8 cả, chỉ cần thay thế

>>> mylist
['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine']
0 trong mã ở trên bằng
>>> mylist
['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine']
1.

Đã trả lời ngày 11 tháng 8 năm 2016 lúc 3:02Aug 11, 2016 at 3:02

Hướng dẫn how to iterate through a list in python without a loop - cách lặp qua danh sách trong python mà không cần vòng lặp

Óscar Lópezóscar LópezMestica

228K35 Huy hiệu vàng305 Huy hiệu bạc378 Huy hiệu đồng4 gold badges23 silver badges33 bronze badges

6

Hãy lấy danh sách mẫu này:

list1 = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]
sum1 = sum([i for i in list1 if i > 2 and i < 9])

Bây giờ, hãy in các yếu tố 2 đến 8 mà không cần lặp:Aug 11, 2016 at 5:12

Ở đây,

iterate([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 2, 8)
5 bảo Python sử dụng các chỉ số bắt đầu bằng
iterate([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 2, 8)
6 và tiếp tục đến nhưng không bao gồm
iterate([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 2, 8)
7.Amit

Đã trả lời ngày 11 tháng 8 năm 2016 lúc 2:592 silver badges11 bronze badges

Trong hướng dẫn này, chúng tôi sẽ đi qua cách lặp lại danh sách trong Python. Danh sách Python về cơ bản là một

>>> mylist
['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine']
2 cho phép chúng tôi lưu trữ và thao tác dữ liệu trong đó.

Một trong những cách sau đây có thể được đề cập đến lặp lại trong danh sách trong Python:

  • Sử dụng phương thức Python Range ()
  • Danh sách hiểu
  • Sử dụng phương thức Python Enumerate ()
  • Bằng cách sử dụng một vòng lặp cho
  • Bằng cách sử dụng vòng lặp trong thời gian
  • Sử dụng mô -đun Python Numpy
  • Sử dụng chức năng Lambda

1. Lặp lại qua danh sách trong python bằng phương thức phạm vi ()

Phương pháp Python từ

>>> mylist
['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine']
3 có thể được sử dụng kết hợp với một vòng lặp để đi qua và lặp qua một danh sách trong Python.

Phương thức phạm vi () về cơ bản trả về một

>>> mylist
['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine']
4, tức là nó xây dựng/tạo một chuỗi các số nguyên từ chỉ mục bắt đầu được cung cấp cho đến chỉ mục cuối như được chỉ định trong danh sách đối số.

Syntax:

range (start, stop[, step])

  • ________ 35 (Giới hạn trên): Tham số này được sử dụng để cung cấp giá trị/chỉ mục bắt đầu cho chuỗi số nguyên được tạo ra.
  • ________ 36 (Giới hạn dưới): Tham số này được sử dụng để cung cấp giá trị/chỉ số cuối cho chuỗi số nguyên được tạo.
  • ________ 37 (Tùy chọn): Nó cung cấp sự khác biệt giữa mỗi số nguyên từ chuỗi được tạo ra.

Hàm phạm vi () tạo ra chuỗi số nguyên từ giá trị bắt đầu cho đến khi kết thúc/giá trị dừng, nhưng nó không bao gồm giá trị cuối trong chuỗi, tức là nó không bao gồm số dừng/giá trị theo trình tự kết quả.range() function generates the sequence of integers from the start value till the end/stop value, but it doesn’t include the end value in the sequence i.e. it doesn’t include the stop number/value in the resultant sequence.

Example:

lst = [10, 50, 75, 83, 98, 84, 32]

for x in range(len(lst)): 
	print(lst[x]) 

Trong đoạn mã trên, danh sách được lặp lại bằng cách sử dụng hàm Range () đi qua 0 (0) theo độ dài của danh sách được xác định.0(zero) to the length of the list defined.

Output:


2. Lặp lại qua danh sách trong Python bằng cách sử dụng một vòng lặp cho vòng lặp

Python cho vòng lặp có thể được sử dụng trực tiếp để lặp qua danh sách.

Syntax:

def iterate(lst, start, end):
  if start < 0 or end >= len(lst) or start > end:
    return
  print(lst[start])
  iterate(lst, start + 1, end)
0

Example:

def iterate(lst, start, end):
  if start < 0 or end >= len(lst) or start > end:
    return
  print(lst[start])
  iterate(lst, start + 1, end)
1

Output:


3. Liệt kê sự hiểu biết lặp lại thông qua một danh sách trong Python

Hiểu danh sách Python là một cách không phân biệt để tạo danh sách các yếu tố sở hữu một thuộc tính hoặc đặc điểm kỹ thuật cụ thể, tức là nó có thể xác định xem đầu vào có phải là danh sách, chuỗi, tuple, v.v.

Syntax:

def iterate(lst, start, end):
  if start < 0 or end >= len(lst) or start > end:
    return
  print(lst[start])
  iterate(lst, start + 1, end)
2

Example:

def iterate(lst, start, end):
  if start < 0 or end >= len(lst) or start > end:
    return
  print(lst[start])
  iterate(lst, start + 1, end)
3

Output:


4. Lặp lại qua danh sách trong Python với một vòng lặp trong thời gian

Python trong khi vòng lặp cũng có thể được sử dụng để lặp lại danh sách theo cách tương tự như của các vòng lặp.

Syntax:

def iterate(lst, start, end):
  if start < 0 or end >= len(lst) or start > end:
    return
  print(lst[start])
  iterate(lst, start + 1, end)
4

Example:

def iterate(lst, start, end):
  if start < 0 or end >= len(lst) or start > end:
    return
  print(lst[start])
  iterate(lst, start + 1, end)
5

Output:


Các mảng Python Numpy cũng có thể được sử dụng để lặp lại một danh sách một cách hiệu quả.

Hàm python numpy.arange () tạo ra một chuỗi số nguyên thống nhất.

Cú pháp cho hàm numpy.arange ():

def iterate(lst, start, end):
  if start < 0 or end >= len(lst) or start > end:
    return
  print(lst[start])
  iterate(lst, start + 1, end)
6

  • >>> mylist
    ['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine']
    
    5: Tham số này được sử dụng để cung cấp giá trị/chỉ mục bắt đầu cho chuỗi số nguyên được tạo.
  • >>> mylist
    ['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine']
    
    6: Tham số này được sử dụng để cung cấp giá trị/chỉ mục cuối cho chuỗi số nguyên được tạo.
  • >>> mylist
    ['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine']
    
    7: Nó cung cấp sự khác biệt giữa mỗi số nguyên từ chuỗi được tạo ra.

>>> ' '.join(mylist[2:9])
'two three four five six seven eight'
1 là một hàm cung cấp cho chúng ta một trình lặp để đi qua mảng numpy.

Example:

def iterate(lst, start, end):
  if start < 0 or end >= len(lst) or start > end:
    return
  print(lst[start])
  iterate(lst, start + 1, end)
7

Trong đoạn mã trên, NP.Arange (16) tạo ra một chuỗi số nguyên từ 0 đến 15.np.arange(16) creates a sequence of integers from 0 to 15.

Output:

def iterate(lst, start, end):
  if start < 0 or end >= len(lst) or start > end:
    return
  print(lst[start])
  iterate(lst, start + 1, end)
8


6. Phương thức Python Enumerate () để lặp lại danh sách Python

Chức năng Python Enumerate () có thể được sử dụng để lặp lại danh sách theo cách tối ưu hóa.

Hàm

>>> ' '.join(mylist[2:9])
'two three four five six seven eight'
2 thêm một bộ đếm vào danh sách hoặc bất kỳ điều gì khác và trả về nó dưới dạng một đối tượng được liệt kê bởi hàm.adds a counter to the list or any other iterable and returns it as an enumerate object by the function.

Do đó, nó làm giảm chi phí của việc giữ số lượng các yếu tố trong khi hoạt động lặp.it reduces the overhead of keeping a count of the elements while the iteration operation.

Syntax:

def iterate(lst, start, end):
  if start < 0 or end >= len(lst) or start > end:
    return
  print(lst[start])
  iterate(lst, start + 1, end)
9

  • >>> ' '.join(mylist[2:9])
    'two three four five six seven eight'
    
    3: Đây là chỉ số của phần tử mà bộ đếm phải được ghi lại để lặp lại có thể lặp được.

Example:

iterate([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 2, 8)
0

Output:

iterate([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 2, 8)
1


7. Lặp lại danh sách Python bằng cách sử dụng chức năng Lambda

Các chức năng Python sườn Lambda về cơ bản là các hàm ẩn danh.

Syntax:

iterate([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 2, 8)
2

  • >>> ' '.join(mylist[2:9])
    'two three four five six seven eight'
    
    4: Điều đó có thể được đánh giá.

Hàm Lambda cùng với hàm Python Map () có thể được sử dụng để lặp lại danh sách một danh sách một cách dễ dàng.

Phương thức Python

>>> ' '.join(mylist[2:9])
'two three four five six seven eight'
5 chấp nhận một hàm như một tham số và trả về danh sách.

Hàm đầu vào cho phương thức Bản đồ () được gọi với mọi yếu tố của ITEBLE và nó trả về một danh sách mới với tất cả các phần tử được trả về từ hàm, tương ứng.

Example:

iterate([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 2, 8)
3

Trong đoạn mã trên, hàm Lambda X: X được cung cấp dưới dạng đầu vào cho hàm bản đồ (). Lambda X: X sẽ chấp nhận mọi yếu tố của Itable và trả lại nó.lambda x:x function is provided as input to the map() function. The lambda x:x will accept every element of the iterable and return it.

Input_list (LST) được cung cấp dưới dạng đối số thứ hai cho hàm map (). Vì vậy, hàm bản đồ () sẽ chuyển mọi yếu tố của LST cho hàm Lambda X: X và trả về các phần tử.lst) is provided as the second argument to the map() function. So, the map() function will pass every element of lst to the lambda x:x function and return the elements.

Output:

iterate([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 2, 8)
4


Sự kết luận

Trong bài viết này. Chúng tôi đã tiết lộ các kỹ thuật khác nhau để lặp lại danh sách Python.


Người giới thiệu

  • Lặp lại trong danh sách Python - Tạp chí

Làm thế nào để tôi lặp lại thông qua một danh sách mà không có một vòng lặp trong Python?

Vòng lặp mà không có vòng lặp nhận được một trình lặp từ đã được cho là có thể. Nhiều lần nhận được mục tiếp theo từ iterator. Thực hiện thân máy của vòng lặp nếu chúng ta có thành công mục tiếp theo. Dừng vòng lặp của chúng tôi nếu chúng tôi có ngoại lệ dừng lại trong khi nhận được mục tiếp theo.Get an iterator from the given iterable. Repeatedly get the next item from the iterator. Execute the body of the for loop if we successfully got the next item. Stop our loop if we got a StopIteration exception while getting the next item.

Làm thế nào để bạn lặp lại thông qua một danh sách trong Python?

Chúng ta có thể lặp lại thông qua một danh sách bằng cách sử dụng hàm phạm vi () và chuyển độ dài của danh sách.Nó sẽ trả về chỉ mục từ 0 đến hết danh sách.using the range() function and passing the length of the list. It will return the index from 0 till the end of the list.

Tôi có thể sử dụng gì thay vì một vòng lặp trong Python?

Hàm bản đồ () là một sự thay thế cho một vòng lặp.Nó áp dụng một chức năng cho từng yếu tố của một điều khác.Hàm bản đồ () chấp nhận hai đối số: một hàm được áp dụng cho từng phần tử trong danh sách (biểu thức Lambda)map() function is a replacement to a for a loop. It applies a function for each element of an iterable. The map() function accepts two arguments: A function that is applied for each element in the list (a lambda expression)

Làm thế nào để bạn lặp lại thông qua một danh sách trong Python trong một dòng?

Làm thế nào để viết một vòng lặp cho một dòng mã Python duy nhất ?..
Phương pháp 1: Nếu cơ thể vòng lặp bao gồm một câu lệnh, chỉ cần viết câu lệnh này vào cùng một dòng: Đối với I trong phạm vi (10): in (i).....
Phương pháp 2: Nếu mục đích của vòng lặp là tạo danh sách, hãy sử dụng danh sách hiểu thay vào đó: bình phương = [i ** 2 cho i trong phạm vi (10)] ..