Hướng dẫn how do you iterate a digit in python? - làm thế nào để bạn lặp lại một chữ số trong python?

Tôi có một đầu vào chuỗi, chẳng hạn như 100124. Tôi muốn đánh giá từng chữ số của chuỗi là một số nguyên, vì vậy tôi làm:

for c in string:
    c = int(c)
    # do stuff with c

Có một cách nào tốt hơn về mặt cú pháp để làm điều này? Tôi đã thử làm

for c in map(int, string):
    # do stuff with c
0 trước vòng lặp, nhưng một con số không thể hiểu được.

Đã hỏi ngày 1 tháng 2 năm 2015 lúc 21:34Feb 1, 2015 at 21:34

Hướng dẫn how do you iterate a digit in python? - làm thế nào để bạn lặp lại một chữ số trong python?

1

Bạn có thể

for c in map(int, string):
    # do stuff with c
1 chuỗi thành
for c in map(int, string):
    # do stuff with c
2:

for c in map(int, string):
    # do stuff with c

Demo:

>>> for c in map(int, '100124'):
...     c
...
1
0
0
1
2
4
>>>

Đã trả lời ngày 1 tháng 2 năm 2015 lúc 21:35Feb 1, 2015 at 21:35

1

Bạn có thể sử dụng danh sách hiểu biết trả về trình tạo:

>>> [int(i) for i in s]
[1, 0, 0, 1, 2, 4]
>>> for digit in [int(i) for i in s] :
...    # do stuff with digit

hoặc chức năng

for c in map(int, string):
    # do stuff with c
1:

>>> map(int,s)
[1, 0, 0, 1, 2, 4]

Đã trả lời ngày 1 tháng 2 năm 2015 lúc 21:35Feb 1, 2015 at 21:35

Hướng dẫn how do you iterate a digit in python? - làm thế nào để bạn lặp lại một chữ số trong python?

Bạn có thể sử dụng danh sách hiểu biết trả về trình tạo:Mazdak

hoặc chức năng

for c in map(int, string):
    # do stuff with c
1:18 gold badges158 silver badges183 bronze badges

Xin chào, nếu tôi có nhiều số nguyên và muốn làm điều gì đó với mỗi chữ số như số nguyên, cách nhanh nhất để đến đó là gì?
If I have a lot of integers and want do something with each digit as
integer, what is the fastest way to get there?

Ví dụ. Biến 12345 thành một đối tượng có thể lặp lại, như [1,2,3,4,5] hoặc "12345"

(BTW: Thuật ngữ tiếng Anh cho quá trình này;
digitize? sequence?)

Vài ví dụ:

n = 12345

#1. s = str (n) cho i trong s: d = int (i) foo (d)
s = str(n)
for i in s:
d = int(i)
foo(d)

#2. nl = map (int, str (n)) cho d trong nl: foo (d)
nl = map(int, str(n))
for d in nl:
foo(d)

#3. nl = [int (x) cho x in str (n)] cho d trong nl: foo (d)
nl = [int(x) for x in str(n)]
for d in nl:
foo(d)

Trong số đó, tôi có một chút ngạc nhiên, thấy rằng #1 là nhanh nhất và số 2 sử dụng map () nhanh hơn #3 bằng cách sử dụng danh sách hiểu. Tôi cũng đã đăng ký rằng repr (n) nhanh hơn khoảng 8% so với str (n).
that #2 using map() is faster than #3 using list comprehension. I also
registered that that repr(n) is about 8% faster than str(n).

Có cách nào nhanh hơn không? Có thể tránh các loại đúc?

Cảm ơn tất cả các câu trả lời!

Hướng dẫn how do you iterate a digit in python? - làm thế nào để bạn lặp lại một chữ số trong python?

Python lặp qua các chữ số trong số nguyên | Lặp lại là một thuật ngữ đề cập đến quá trình đi qua từng mục một. Lặp lại xảy ra bất cứ khi nào bạn sử dụng một vòng lặp rõ ràng hoặc tiềm ẩn để chạy trên một tập hợp các phần tử. | Iteration is a term that refers to the process of going through each item one by one. Iteration occurs whenever you use an explicit or implicit loop to run over a set of elements.

Bài viết này sẽ giúp bạn học cách lặp lại các chữ số trong số trong Python. Chúng tôi sẽ sử dụng ba phương pháp khác nhau để đạt được kết quả dự kiến ​​và chúng tôi cũng sẽ xem xét các ví dụ khác nhau sẽ giúp bạn hiểu khái niệm này tốt hơn.

Ví dụ 1: TiếtDigits = 1432
Digits = 1432

Đầu ra: Tiết1432
1
4
3
2

Ví dụ 2: Mạnha = [9,8,7,6]
a = [9,8,7,6]

Đầu ra: Ăn9 8 7 6
9 8 7 6

Hãy cùng xem làm thế nào để làm cho điều này có thể bằng các phương pháp sau.

Python lặp lại trên các chữ số trong số nguyên bằng cách sử dụng cho vòng lặp

Tererables là các đối tượng trong Python có thể được đi qua một mục tại một thời điểm bằng cách sử dụng một vòng lặp. Không thể lặp lại tất cả các đối tượng; Ví dụ, chúng ta có thể không lặp lại một số nguyên vì nó là một giá trị đơn độc.

Approach:

1. Đầu tiên chúng tôi xác định chuỗi X.2. Khởi tạo cho vòng lặp .in.in.3. Mỗi số được truy cập bằng cách đi qua các chữ số.4. Đầu ra cuối cùng.
2. Initialized the for….in loop.
3. Each number is accessed by going through the digits.
4. Final output.

Ví dụ 1: - Python lặp qua các chữ số trong số nguyên bằng cách sử dụng cho vòng lặp– Python iterate over digits in integer using for loop

x = 78912
for digit in str(x):
   print(int(digit))

Đầu ra:-

78912
8
9
1
2

Ví dụ 2:- Nếu đầu vào được xác định bởi người dùng

num = int(input("Enter a number: "))
for digit in str(num):
   print(f'{int(digit)}')

Output:-

Nhập một số: 454615454615
4
5
4
6
1
5

Lặp lại trên các chữ số trong số python sử dụng trong khi vòng lặp

Trong chương trình trước, chúng tôi đã thấy một giải pháp sử dụng cho Loop. Bây giờ chúng ta hãy xem một chương trình cho Python lặp qua các chữ số trong số nguyên bằng cách sử dụng vòng lặp trong khi.

Lập trình để lặp lại các chữ số trong số python sử dụng trong khi vòng lặp

from math import log

def number(n):
   x = int(log(n, 10).real)
   factor = 10**x
   while n:
      yield int(n/factor)
      n = n % factor
      try:
         x, old_x = int(log(n, 10).real), x
      except ValueError:
         for _ in range(x):
            yield 0
         return
      factor = 10**x

for z in number(7657):
   print(z)

Đầu ra:-

7657
6
5
7

Lặp qua các chữ số của một số python bằng cách sử dụng đệ quy

Phương pháp đệ quy cũng có thể được sử dụng để lặp qua các chữ số trong số Python. Đệ quy là một phương tiện để xác định một quá trình liên quan đến một cuộc gọi đến chính nó. Tính năng đệ quy giúp phá vỡ một vấn đề khó khăn thành các khối nhỏ hơn, dễ quản lý hơn. Phân chia và chinh phục là một chiến lược mã hóa máy tính rất tốt.

Chương trình:- Python lặp qua các chữ số trong số nguyên bằng cách sử dụng đệ quy

def number(n):
   # if n is a zero stop the recursion
   if(n == 0):
      return
   # Call the function recursively for n // 10
   # which calls for the remaining numbet
   # after getting rid of the last digit
   number(n // 10)
   print(n % 10)


if __name__ == "__main__":
   number(4598)

Output:-

4598
5
9
8

Điều này đưa chúng ta đến cuối bài viết này, nơi chúng ta đã học cách lặp lại các chữ số trong số python bằng cách sử dụng vòng lặp, trong khi vòng lặp và đệ quy.

Nếu bạn thích bài đăng này, hãy chia sẻ nó với bạn bè của bạn. Bạn có muốn chia sẻ thêm thông tin về chủ đề được thảo luận ở trên hay bạn tìm thấy điều gì không chính xác? Hãy cho chúng tôi biết trong các ý kiến. Cảm ơn bạn!