Cải thiện bài viết
Lưu bài viết
Cải thiện bài viết
Lưu bài viết
Đọc
Bàn luận Using simple iteration and
S K E E G s k e e g r o f s k e e g7
Trong Python, trong khi hoạt động với chuỗi, người ta có thể thực hiện nhiều hoạt động trên đó. Hãy cùng xem cách lặp lại các ký tự của một chuỗi trong Python.
Ví dụ #1: Sử dụng Lặp lại đơn giản và
S K E E G s k e e g r o f s k e e g7
for c in "string":
#do something with c
5for c in "string":
#do something with c
6for c in "string":
#do something with c
7S K E E G s k e e g r o f s k e e g9
for c in "string":
#do something with c
9with open[filename] as f:
for line in f:
# do something with line
0for c in "string":
#do something with c
6with open[filename] as f:
for line in f:
# do something with line
2with open[filename] as f:
for line in f:
# do something with line
3with open[filename] as f:
for line in f:
# do something with line
0S K E E G s k e e g r o f s k e e g8
S K E E G s k e e g r o f s k e e g9
for c in "string":
#do something with c
0for c in "string":
#do something with c
1 for c in "string":
#do something with c
22____23 for c in "string":
#do something with c
4for c in "string":
#do something with c
5for c in "string":
#do something with c
6>>> for i, c in enumerate['test']:
... print i, c
...
0 t
1 e
2 s
3 t
9Output:
g e e k s f o r g e e k s G E E K S
S K E E G s k e e g r o f s k e e g8
S K E E G s k e e g r o f s k e e g9
with open[filename] as f:
for line in f:
# do something with line
7Example #2: Using
for c in "test":
print c
0 functionfor c in "string":
#do something with c
1 for c in "string":
#do something with c
2___& nbsp; Ví dụ #2: Sử dụng hàm
for c in "test":
print c
0for c in "string":
#do something with c
5for c in "string":
#do something with c
6i = 0
while i < len[str]:
print str[i]
i += 1
1S K E E G s k e e g r o f s k e e g8
S K E E G s k e e g r o f s k e e g9
for c in "test":
print c
3Example #3: Iterate characters in reverse order
S K E E G s k e e g r o f s k e e g8
S K E E G s k e e g r o f s k e e g9
for c in "string":
#do something with c
0for c in "string":
#do something with c
1 for c in "string":
#do something with c
22____23 for c in "string":
#do something with c
4for c in "string":
#do something with c
5for c in "string":
#do something with c
6for i in str:
print i
4S K E E G s k e e g r o f s k e e g9
for c in "string":
#do something with c
9with open[filename] as f:
for line in f:
# do something with line
0for c in "string":
#do something with c
6with open[filename] as f:
for line in f:
# do something with line
2#suppose you have variable name
name = "Mr.Suryaa"
for index in range [ len [ name ] ]:
print [ name[index] ] #just like c and c++
0with open[filename] as f:
for line in f:
# do something with line
0Trong Python, trong khi hoạt động với chuỗi, người ta có thể thực hiện nhiều hoạt động trên đó. Hãy cùng xem cách lặp lại các ký tự của một chuỗi trong Python.
Ví dụ #1: Sử dụng Lặp lại đơn giản và
S K E E G s k e e g r o f s k e e g7
S K E E G s k e e g r o f s k e e g8
S K E E G s k e e g r o f s k e e g9
for c in "string":
#do something with c
0for c in "string":
#do something with c
5for c in "string":
#do something with c
6>>> for i, c in enumerate['test']:
... print i, c
...
0 t
1 e
2 s
3 t
9Output:
S K E E G s k e e g r o f s k e e g
for c in "string":
#do something with c
1 for c in "string":
#do something with c
22____23 for c in "string":
#do something with c
4Example #4: Iteration over particular set of element.
S K E E G s k e e g r o f s k e e g8
S K E E G s k e e g r o f s k e e g9
with open[filename] as f:
for line in f:
# do something with line
7Trong Python, trong khi hoạt động với chuỗi, người ta có thể thực hiện nhiều hoạt động trên đó. Hãy cùng xem cách lặp lại các ký tự của một chuỗi trong Python.
Ví dụ #1: Sử dụng Lặp lại đơn giản và
S K E E G s k e e g r o f s k e e g7
S K E E G s k e e g r o f s k e e g8
S K E E G s k e e g r o f s k e e g9
for c in "string":
#do something with c
0Làm thế nào tôi có thể lặp lại một chuỗi trong python [lấy mỗi ký tự từ chuỗi, mỗi lần một lần, mỗi lần thông qua một vòng lặp]?
Karl Knechtel
59.4K10 Huy hiệu vàng86 Huy hiệu bạc132 Huy hiệu đồng10 gold badges86 silver badges132 bronze badges
hỏi ngày 11 tháng 2 năm 2009 lúc 19:22Feb 11, 2009 at 19:22
0
Như Johannes đã chỉ ra,
for c in "string":
#do something with c
Bạn có thể lặp lại khá nhiều thứ trong Python bằng cách sử dụng cấu trúc
S K E E G s k e e g r o f s k e e g20,
Ví dụ:
S K E E G s k e e g r o f s k e e g21 trả về một đối tượng tệp [và mở tệp], lặp qua nó lặp lại trên các dòng trong tệp đó
with open[filename] as f:
for line in f:
# do something with line
Nếu điều đó có vẻ như ma thuật, thì cũng vậy, nhưng ý tưởng đằng sau nó thực sự đơn giản.
Có một giao thức lặp đơn giản có thể được áp dụng cho bất kỳ loại đối tượng nào để làm cho vòng lặp
for c in "string":
#do something with c
1 hoạt động trên nó.Chỉ cần thực hiện một trình lặp xác định phương thức
S K E E G s k e e g r o f s k e e g23 và thực hiện phương thức
S K E E G s k e e g r o f s k e e g24 trên một lớp để làm cho nó trở nên dễ hiểu. [Tất nhiên, sẽ trả về một đối tượng iterator, nghĩa là một đối tượng xác định
S K E E G s k e e g r o f s k e e g23]
Xem tài liệu chính thức
vallentin
22.2K6 Huy hiệu vàng56 Huy hiệu bạc76 Huy hiệu đồng6 gold badges56 silver badges76 bronze badges
Đã trả lời ngày 11 tháng 2 năm 2009 lúc 19:30Feb 11, 2009 at 19:30
Hasenhasenhasen
158K64 Huy hiệu vàng189 Huy hiệu bạc228 Huy hiệu Đồng64 gold badges189 silver badges228 bronze badges
3
Nếu bạn cần truy cập vào chỉ mục khi bạn lặp lại qua chuỗi, hãy sử dụng
for c in "test":
print c
0:>>> for i, c in enumerate['test']:
... print i, c
...
0 t
1 e
2 s
3 t
Đã trả lời ngày 28 tháng 12 năm 2010 lúc 16:54Dec 28, 2010 at 16:54
Moinudinmoinudinmoinudin
Huy hiệu vàng 130K4545 gold badges188 silver badges213 bronze badges
1
Thậm chí dễ dàng hơn:
for c in "test":
print c
Tim Cooper
154K37 Huy hiệu vàng322 Huy hiệu bạc275 Huy hiệu Đồng37 gold badges322 silver badges275 bronze badges
Đã trả lời ngày 11 tháng 2 năm 2009 lúc 19:24Feb 11, 2009 at 19:24
Johannes Weissjohannes WeissJohannes Weiss
51.3K15 Huy hiệu vàng99 Huy hiệu bạc135 Huy hiệu Đồng15 gold badges99 silver badges135 bronze badges
2
Chỉ cần đưa ra một câu trả lời toàn diện hơn, cách C để lặp qua một chuỗi có thể áp dụng trong Python, nếu bạn thực sự muốn buộc một cái chốt vuông vào một lỗ tròn.
i = 0
while i < len[str]:
print str[i]
i += 1
Nhưng sau đó, một lần nữa, tại sao làm điều đó khi các chuỗi vốn đã có thể lặp lại?
for i in str:
print i
Đã trả lời ngày 17 tháng 2 năm 2009 lúc 5:36Feb 17, 2009 at 5:36
Andrew Szetoandrew SzetoAndrew Szeto
1.1899 huy hiệu bạc13 huy hiệu đồng9 silver badges13 bronze badges
3
Vâng, bạn cũng có thể làm điều gì đó thú vị như thế này và thực hiện công việc của bạn bằng cách sử dụng cho vòng lặp
#suppose you have variable name
name = "Mr.Suryaa"
for index in range [ len [ name ] ]:
print [ name[index] ] #just like c and c++
Câu trả lời là
Ông . S u r y a a a
Tuy nhiên, vì phạm vi [] tạo danh sách các giá trị là chuỗi do đó bạn có thể trực tiếp sử dụng tên
for e in name:
print[e]
Điều này cũng tạo ra kết quả tương tự và cũng trông tốt hơn và hoạt động với bất kỳ trình tự như danh sách, tuple và từ điển.
Chúng tôi đã sử dụng các chức năng được xây dựng trong các chức năng [bifs trong cộng đồng Python]
1] Phạm vi [] - Range [] BIF được sử dụng để tạo ví dụ chỉ mục
S K E E G s k e e g r o f s k e e g0
2] Len [] - Len [] Bif được sử dụng để tìm ra độ dài của chuỗi đã cho
Đã trả lời ngày 20 tháng 5 năm 2017 lúc 14:18May 20, 2017 at 14:18
Nếu bạn muốn sử dụng một cách tiếp cận chức năng hơn để lặp qua một chuỗi [có lẽ để chuyển đổi nó bằng cách nào đó], bạn có thể chia chuỗi thành các ký tự, áp dụng một hàm cho mỗi chuỗi, sau đó tham gia danh sách các ký tự kết quả thành một chuỗi.
Một chuỗi vốn là một danh sách các ký tự, do đó 'bản đồ' sẽ lặp lại trong chuỗi - như đối số thứ hai - áp dụng hàm - đối số thứ nhất - cho mỗi đối số.
Ví dụ, ở đây tôi sử dụng một cách tiếp cận Lambda đơn giản vì tất cả những gì tôi muốn làm là một sửa đổi tầm thường cho nhân vật: ở đây, để tăng mỗi giá trị ký tự:
S K E E G s k e e g r o f s k e e g1
hoặc nói chung hơn:
S K E E G s k e e g r o f s k e e g2
trong đó my_function lấy giá trị char và trả về giá trị char.
Đã trả lời ngày 18 tháng 12 năm 2015 lúc 11:11Dec 18, 2015 at 11:11
MikewmikewMikeW
5.0421 Huy hiệu vàng33 Huy hiệu bạc28 Huy hiệu đồng1 gold badge33 silver badges28 bronze badges
Một số câu trả lời ở đây sử dụng
>>> for i, c in enumerate['test']:
... print i, c
...
0 t
1 e
2 s
3 t
1. S K E E G s k e e g r o f s k e e g29 thường tốt hơn vì nó trả về một trình tạo, thay vì một danh sách hoàn toàn có căn cứ. Trong đó bộ nhớ và hoặc lặp lại có độ dài rất khác nhau có thể là một vấn đề,
S K E E G s k e e g r o f s k e e g29 là vượt trội.
Đã trả lời ngày 27 tháng 9 năm 2017 lúc 3:20Sep 27, 2017 at 3:20
N6151HN6151HN6151H
Huy hiệu đồng 1401 Bạc11 Huy hiệu Đồng1 silver badge11 bronze badges
1
Bạn cũng có thể làm như sau:
S K E E G s k e e g r o f s k e e g3
Điều này không sử dụng các vòng lặp nhưng câu lệnh in nội bộ sẽ chăm sóc nó.
S K E E G s k e e g r o f s k e e g31 Giải nén chuỗi vào danh sách và gửi nó đến câu lệnh in
S K E E G s k e e g r o f s k e e g32 sẽ đảm bảo rằng char tiếp theo được in trên một dòng mới
Đầu ra sẽ là:
S K E E G s k e e g r o f s k e e g4
Nếu bạn cần một câu lệnh LOOP, thì như những người khác đã đề cập, bạn có thể sử dụng một vòng lặp như thế này:
S K E E G s k e e g r o f s k e e g5
Đã trả lời ngày 9 tháng 1 năm 2021 lúc 8:53Jan 9, 2021 at 8:53
Joe Ferndzjoe FerndzJoe Ferndz
8.2972 Huy hiệu vàng12 Huy hiệu bạc32 Huy hiệu Đồng2 gold badges12 silver badges32 bronze badges
Nếu bạn từng chạy trong tình huống mà bạn cần
S K E E G s k e e g r o f s k e e g33, hãy nhớ tạo
S K E E G s k e e g r o f s k e e g34 và lặp lại nó chứ không phải
S K E E G s k e e g r o f s k e e g35
Trong ví dụ này, khi tôi tìm thấy char = S K E E G
s
k
e
e
g
r
o
f
s
k
e
e
g
36, tôi tiếp tục nhìn vào từ tiếp theo trong khi tôi không tìm thấy S K E E G
s
k
e
e
g
r
o
f
s
k
e
e
g
37, vì vậy tôi cần sử dụng __next__
Đây là một vòng lặp trên chuỗi sẽ không giúp được gì
S K E E G s k e e g r o f s k e e g6
Đã trả lời ngày 29 tháng 4 năm 2020 lúc 3:15Apr 29, 2020 at 3:15