Cổng thông tin Khoa học Máy tính dành cho những người yêu thích máy tính. Nó bao gồm các bài báo về khoa học máy tính và lập trình được viết tốt, được tư duy tốt và được giải thích tốt, các câu đố và thực hành / lập trình cạnh tranh / các câu hỏi phỏng vấn công ty.
Bạn đang xem : python lặp lại qua bộ
Trong Python, Set strong > là một tập hợp kiểu dữ liệu không có thứ tự, có thể lặp lại, có thể thay đổi và không có phần tử trùng lặp.
Có nhiều cách có thể được sử dụng để lặp qua một Tập hợp. Một số trong những cách này cung cấp thời gian thực thi nhanh hơn so với những cách khác. Một số cách này bao gồm, lặp lại bằng cách sử dụng vòng lặp for / while, phần hiểu, trình vòng lặp và các biến thể của chúng. Hãy xem tất cả các cách khác nhau mà chúng ta có thể lặp qua một tập hợp trong Python.
Phân tích từng phương pháp:
Để giải thích hoạt động của từng cách / kỹ thuật, thời gian trên mỗi tập hợp (ngẫu nhiên tập hợp được tạo) đã được tính toán cho 5 lần để có được ước tính sơ bộ về thời gian mà mọi kỹ thuật cần để lặp lại trên một tập hợp nhất định. random.seed (21) đã được thêm vào mỗi tập lệnh để khắc phục các số ngẫu nhiên được tạo ra mỗi khi chương trình được thực thi. Sử dụng hạt giống hằng số giúp chúng tôi xác định kỹ thuật nào tốt nhất cho một tập hợp cụ thể được tạo ngẫu nhiên cụ thể.
Phương pháp # 1: Lặp lại một tập hợp bằng vòng lặp for đơn giản.
p >
Python3
< / p>
test_set
=
set
(
"geEks"
)
cho
val
trong
test_set:
print
(val)
Đầu ra:
< trước> k
S
e
g
E
Phân tích:
Python3
từ
timeit
nhập
default_timer làm bộ đếm thời gian
< code class = "keyword"> nhập itertools
nhập < / code>
ngẫu nhiên
def
test_func (test_set):
cho
val
trong
test_set:
< / code>
_
=
val
if
__ name__
=
=
'__ main__'
:
random.seed (
21
) mã>
cho
_
trong
range
(
5
):
test_set
=
set
() < / code>
cho
el
trong
range
(
int mã>
(
1e6
)):
el
=
random.random ()
test_set.add (el)
start
=
timer ()
< code class = "trơn"> test_func (test_set)
end
=
timer ()
< / p>
print
(< / code>
str
(end
-
bắt đầu))
Đầu ra:
0.06303901899809716 0,06756918999963091 0,06692574200133095 0,067220498000097 0,06748137499744189
Phương pháp số 2: Lặp lại một tập hợp bằng vòng lặp for được liệt kê.
Python3 < / h2>
< br />
test_set
=
set
(
"geEks"
)
cho
id
, val
trong
liệt kê
(test_set):
print
(
id
, val)
Đầu ra:
0 E 1 e 2 k 3 g 4 s
Phân tích:
Python3
từ
timeit
nhập
default_timer làm bộ đếm thời gian
nhập code >
itertools
nhập
ngẫu nhiên
def
test_func (test_set):
< p class = "line number9 index8 alt2"> cho
id
, val mã>
trong
liệt kê
(test_set):
_
=
val
if
__ name__
=
=
'__ main__'
:
random.seed (
21
)
cho
_
trong
phạm vi
(
5
):
test_set
=
set
()
cho
el
trong
range
(
int
(
1e6
)):
el
=
ngẫu nhiên. random ()
test_set.add (el) < / code>
bắt đầu
=
timer ()
test_func (test_set)
end mã>
=
timer ()
< p class = "line number28 index27 alt1">
print
(
< code class = "functions"> str (end
-
start))
pre>Đầu ra :
0,1306622320007591 0,13657568199778325 0,13797824799985392 0,1386374360008631 0,1424286179972114Phương pháp # 3: Lặp lại một tập hợp dưới dạng danh sách được lập chỉ mục.
Python3
< br />
test_set
=
set
(< / code>
"geEks"
)
test_list
=
list
(test_set)
< p class = "line number7 index6 alt2">
cho
id
trong
< code class = "functions"> range(
len (test_list)):
(test_list [
id
])
Đầu ra:
g k E S ePhân tích:
Python3
từ
timeit
nhập
default_timer làm bộ đếm thời gian
nhập
itertools
nhập
ngẫu nhiên
def
test_func (test_set):
test_list
=
danh sách
(test_set)
cho
id
trong
range
(
len
(test_list)):
code >
_
=
test_list [
id
]
if mã>
__ name__
=
=
' __main__ '
:
< code class = "undefined space">
random.seed (
21
)
cho
_
trong
range
(
5
):
test_set
=
set
()
cho
el
trong
range
(
int
(
1e6
)):
el
=
random.random ()
< / code>
test_set.add (el)
p>
bắt đầu
=
timer ()
test_func (test_set)
< p class = "line number29 index28 alt2">
print code >
(
str
(end
-
start))
< / pre>Đầu ra :
0,20036015100049553 0,2557020290005312 0,4601482660000329 0,2161413249996258 0,18769703499856405Phương pháp # 4: Lặp lại trên một tập hợp bằng cách sử dụng hàm tạo / khởi tạo danh sách và hiểu.
Python3
test_set
< code class = "keyword"> =set
(
"geEks" < / code>
)
com
=
danh sách
(val
cho
val
trong
test_set)
(
*
com)
Đầu ra:
k s e g EPhân tích:
>Python3
từ
timeit
nhập
default_timer làm bộ đếm thời gian
nhập
itertools
nhập
ngẫu nhiên
< / p>
def
test_func (test_set):
list
(val
cho
val
trong
test_set)
p >
nếu
__ name__
=
=
'__ main__'
:
random.seed (
< code class = "value"> 21)
< / code>
cho
_
trong
phạm vi
(
5
):
< p class = "line number16 index15 alt1">
test_set
=
< code class = "functions"> set()
cho
el
trong range
(
int code >
(
1e6
)):
el
=
random.random ()
test_set .add (el)
mã>
bắt đầu
=
timer ()
test_func (test_set)
end
=
timer ()
(
str
(end
-
start))
Đầu ra :
0,1662169310002355 0,1783527520019561 0,21661155100082397 0,19131610199838178 0,19931397800246486Phương pháp số 5: Lặp lại một tập hợp bằng cách sử dụng tính năng hiểu.
Python3
< br />
test_set
= code>
set
(
"geEks"
)
com
=
[
print < / code>
(val)
cho từ khóa
val
trong
test_set]
Đầu ra:
e E g S kPhân tích:
Python3
từ
timeit
nhập
default_timer làm bộ đếm thời gian
nhập
itertools
nhập
ngẫu nhiên
< code class = "keyword"> def
test_func (test_set):
[val
cho
val code >
trong
test_set]
if
__ name__
< code class = "keyword"> ==
'__ main__'
: < / code>
random.seed (
21
)
cho
_
trong
range
(
5
):
test_set
=
set
() < / code>
cho
el
trong
range
(
int mã>
(
1e6
)):
el
=
random.random ()
test_set.add (el)
< p class = "line number23 index22 alt2">
start
=
< code class = "trơn"> timer ()
test_func (test_set)
end
< code class = "keyword"> =timer ()
(
str
(end
-
start)) code >
Đầu ra :
< / p>0,11386321299869451 0,111869686999853 0,1092844699996931 0,11223735699968529 0,10928539399901638Phương pháp số 6: Lặp lại một tập hợp bằng cách sử dụng bản đồ, lambda và hiểu danh sách
Python3
từ
timeit
nhập
default_timer dưới dạng bộ đếm thời gian
nhập
itertools
nhập
ngẫu nhiên
def
test_func (test_set): code >
[
map
(
lambda
val: val, test_set)]
< p class = "line number12 index11 alt1">
if
__ name__
=
< code class = "keyword"> ='__ main__'
:
random.seed (
< code class = "value"> 21)
< / code>
cho
_
trong
range
(
5
):
test_set mã>
=
set
()
cho
el
trong code>
range
(
int
(
1e6
)):
el
=
random.random ()
mã>
test_set.add (el)
start
=
timer ()
test_func (test_set)
p>
end
= mã>
timer ()
(
str
< code class = "trơn"> (end- start))
Output :
1.0756000847322866e -05 1.310199877480045e-05 1.269100175704807e-05 1.1588999768719077e-05 1.2522999895736575e-05Phương pháp # 7: Lặp lại trên một tập hợp bằng trình lặp.
Python3
< br />
từ
timeit
nhập
default_timer dưới dạng hẹn giờ
nhập
itertools
nhập
ngẫu nhiên
def
test_func (test_set):
p>
cho
val code>
trong
iter
(test_set):
_
=
val
nếu
__ name__
=
=
'__ main__'
:
random.seed (
21
)
cho
_
trong
range
(
5 mã>
):
test_set
=
set
()
p >
cho
el
trong
range
(
int
(
1e6
)): mã>
el
=
random.random ()
code >
test_set.add (el)
< code class = "undefined space">
start
=
timer () < / code>
test_func (test_set)
mã>
end
=
timer ()
str
(end
- code>
start))
pre >Đầu ra :
0,0676155920009478 0,07111633900058223 0,06994135700006154 0,0732101009998587 0,08668379899972933Phương pháp # 8: Lặp lại một tập hợp bằng trình lặp và vòng lặp while.
Python3
test_set
=
set
(
"geEks" code >
)
iter_gen
=
iter
(test_set)
p>
trong khi
True
: cod e>
thử
:
in
(
next
(iter_gen))
mã>
ngoại trừ
StopIteration:
break
Đầu ra:
E S e k gPhân tích:
Python3
từ
timeit
nhập
default_timer làm bộ đếm thời gian
nhập
itertools
nhập
ngẫu nhiên
< code class = "keyword"> def
test_func (test_set):
iter_gen
=
iter
(test_set)
while
True
:
thử
:
tiếp theo
(iter_gen)
p>
ngoại trừ
StopIte khẩu phần:
< code class = "undefined space">
break
if
__ name__
=
=
'__ main__'
:
random.seed (
21
)
cho
_
trong mã>
range
(
5
):
test_set
=
đặt
()
< code class = "undefined space">
cho < / code>
el
trong
range
(
int
(
1e6
)):
el
=
random.random ()
test_set.add (el) mã>
bắt đầu
=
timer ()
test_func (test_set)
end
=
timer ()
< / p>
in cod e>
(
str
(end
-
start))
Đầu ra:
0,2136418699992646 0,1952157889973023 0,4234208280031453 0,255840524998348 0,24712910099697183Kết luận:
Trong số tất cả các kỹ thuật lặp, lặp vòng lặp for đơn giản và lặp qua trình lặp hoạt động tốt nhất, trong khi so sánh tất cả các kỹ thuật, sử dụng bản đồ với lambda over set hoặc trình lặp của tập hợp hoạt động tốt nhất cho hiệu suất của một triệu lần lặp tập hợp dưới 10 mili giây. Điều khá đáng chú ý là các ví dụ trên chỉ có quyền truy cập đơn lẻ vào các thành phần tập hợp mỗi lần lặp, trong khi nếu chúng ta tăng số lần một thành phần tập hợp được truy cập trên mỗi lần lặp, nó có thể thay đổi thời gian thực hiện mỗi lần lặp.
Lưu ý : Các giá trị được đề cập ở trên trong đầu ra ví dụ bị ràng buộc thay đổi. Lý do đằng sau sự thay đổi của mức tiêu thụ thời gian là sự phụ thuộc của máy vào khả năng xử lý của bộ xử lý hệ thống của cá nhân.
Ghi chú cá nhân của tôi
Xem thêm những thông tin liên quan đến chủ đề python lặp đi lặp lại qua thiết lập
Vòng lặp For, while trong Python | Python Cơ bản Bài 6
- Tác giả: CODE LÝ CODE HÀNH
- Ngày đăng: 2020-10-01
- Đánh giá: 4 ⭐ ( 3671 lượt đánh giá )
- Khớp với kết quả tìm kiếm: -- Tài liệu về Python đây nha:
https://drive.google.com/drive/folders/1ICFoVTHdkocZjZ590Gf9bVchy6tFIhd7?usp=sharingNếu muốn học lập trình thì nhanh tay chọn ngay khóa học ⬇⬇⬇⬇⬇
( Tất cả khóa học giảm giá 40% Nhanh Tay nào )- Lập trình Java căn bản từ con số 0 cho người mới bắt đầu : https://bit.ly/3BWh67Q
- Lập trình Android toàn tập : https://bit.ly/301nPQx
- Học python căn bản thông qua lập trình 1 game : https://bit.ly/3H2hkOO
- Lập trình game 3D với Unity : https://bit.ly/3bUJOeF
- Lập Trình Python Từ Zero - Hero : https://bit.ly/3bO73r5
- AI - Trí tuệ nhân tạo cho mọi người : https://bit.ly/3bStScV
- Chế tạo robot điều khiển bằng giọng nói : https://bit.ly/2Ypsxr0Videos của mình thế nào mọi người nhớ nhận xét nha ???
Đừng quên nhấn nút SUBSCRIBE (Đăng Ký) và đánh CHUÔNG để nhận được những videos mới nhất và sớm nhất nha.
Cảm ơn mọi người đã ủng hộ mình ! 😀😁😎
Mạng Xã Hội của mình:
--== Blog ==-- : https://vloglaptrinh.blogspot.com/
-- group CODE LÝ CODE HÀNH: https://bit.ly/3hsFuaR
-- Fanpage: https://bit.ly/3klk25bCODELÝCODEHÀNH
Python
LậpTrìnhPython
Tự động hóa công việc trong Excel bằng Python
- Tác giả: unitrain.edu.vn
- Đánh giá: 4 ⭐ ( 7578 lượt đánh giá )
- Khớp với kết quả tìm kiếm:
Bài 14: Vòng lặp trong Python
- Tác giả: vncoder.vn
- Đánh giá: 5 ⭐ ( 1626 lượt đánh giá )
- Khớp với kết quả tìm kiếm: Vòng lặp (tiếng anh là loop) là một thuật ngữ dùng để diễn tả một hành động hay một cụm hành động được lặp đi lặp lại nhiều lần.
PYTHON EXCEL CHO NGƯỜI MỚI BẮT ĐẦU
- Tác giả: www.pythonexcel.online
- Đánh giá: 4 ⭐ ( 4129 lượt đánh giá )
- Khớp với kết quả tìm kiếm: Python Excel
Vòng lặp trong Python
- Tác giả: vietjack.com
- Đánh giá: 4 ⭐ ( 3687 lượt đánh giá )
- Khớp với kết quả tìm kiếm: Vòng lặp trong Python - Học Python cơ bản và nâng cao theo các bước đơn giản từ Tổng quan, Cài đặt, Biến, Toán tử, Cú pháp cơ bản, Hướng đối tượng, Vòng lặp, Chuỗi, Number, List, Dictionary, Tuple, Module, Xử lý ngoại lệ, Tool, Exception Handling, Socket, GUI, Multithread, Lập trình mạng, Xử lý XML.
Các cấu trúc lặp trong Python: for và while
- Tác giả: tuhocict.com
- Đánh giá: 4 ⭐ ( 4894 lượt đánh giá )
- Khớp với kết quả tìm kiếm: Bài học này xem xét cách sử dụng vòng lặp trong Python, bao gồm vòng lặp for và vòng lặp while, và cách điều khiển vòng lặp với break và continue.
Vòng lặp trong Python
- Tác giả: toidicode.com
- Đánh giá: 4 ⭐ ( 6865 lượt đánh giá )
- Khớp với kết quả tìm kiếm: Phần trước, chúng ta đã được tìm hiểu về câu lệnh rẽ nhánh trong python rồi và các bạn cũng thấy nó khá đơn giản đúng không? Phần này chúng ta cũng sẽ tìm hiểu về một thứ không thể thiếu trong các ngôn ngữ lập trình đó là vòng lặp. Vòng lặp (tiếng anh là loop) là một thuật ngữ dùng để diễn tả một hành động hay một cụm hành động được lặp đi lặp lại nhiều lần.
Xem thêm các bài viết khác thuộc chuyên mục: Kiến thức lập trình