Hướng dẫn python make string alphanumeric

I want to extract numbers contained in an alphanumeric strings. Please help me on this.

Nội dung chính

  • Step-By-Step
  • Not the answer you're looking for? Browse other questions tagged python string or ask your own question.
  • Kiểm tra chuỗi có phải là chữ hay không bằng phương thức isascii trong python
  • Kiểm tra chuỗi có phải là chữ hay không bằng phương thức isalpha trong python
  • Kiểm tra chuỗi có phải là chữ hoặc số bằng phương thức isalnum trong python
  • Tổng kết và thực hành

Example:

line = ["frame_117", "frame_11","frame_1207"]

Result:

[117, 11, 1207]

asked May 29, 2021 at 12:44

Hướng dẫn python make string alphanumeric

1

You can split with special character '_' like this:

numbers = []
line = ["frame_117", "frame_11","frame_1207"]
for item in line:
    number = int(item.split("_",1)[1])
    numbers.append(number)
print(numbers)

Dharman

27.7k21 gold badges75 silver badges126 bronze badges

answered May 29, 2021 at 13:05

kietlekietle

1385 bronze badges

import re
temp = []
lines = ["frame_117", "frame_11","frame_1207"]
for line in lines:
    num = re.search(r'-?\d+', line)
    temp.append(int(num.group(0)))

print(temp) # [117, 11, 1207]

answered May 29, 2021 at 13:05

mmrmmr

52611 silver badges29 bronze badges

Rationale

The first thing I see is that the names inside the list have a pattern. The string frame, an underscore _ and the string number: "frame_number".

Step-By-Step

With that in mind, you can:

  1. Loop through the list. We'll use a list comprehension.
  2. Get each item from the list (the names="frame_number" )
  3. Split them according to a separator (getting a sublist with ["frame", "number"])
  4. And then create a new list with the last items of each sublist
numbers = [x.split("_")[-1] for x in line]
['117', '11', '1207']

Solution

  1. But you need numbers and here you have a list of strings. We make one extra step and use int().
numbers = [int(x.split("_")[-1]) for x in line]
[117, 11, 1207]

This works only because we detected a pattern in the target name.

But what happens if you need to find all numbers in a random string? Or floats? Or Complex numbers? Or negative numbers?

That's a little bit more complex and out of scope of this answer. See How to extract numbers from a string in Python?

He3lixxx

2,6181 gold badge8 silver badges22 bronze badges

answered May 29, 2021 at 14:09

Guzman OjeroGuzman Ojero

2,02018 silver badges18 bronze badges

Not the answer you're looking for? Browse other questions tagged python string or ask your own question.

Nội dung chính

Nội dung chính

  • Kiểm tra chuỗi có phải là chữ hay không bằng phương thức isascii trong python
  • Kiểm tra chuỗi có phải là chữ hay không bằng phương thức isalpha trong python
  • Kiểm tra chuỗi có phải là chữ hoặc số bằng phương thức isalnum trong python
  • Tổng kết và thực hành

Nội dung chính

  • Kiểm tra chuỗi có phải là chữ hay không bằng phương thức isascii trong python
  • Kiểm tra chuỗi có phải là chữ hay không bằng phương thức isalpha trong python
  • Kiểm tra chuỗi có phải là chữ hoặc số bằng phương thức isalnum trong python
  • Tổng kết và thực hành

Nội dung chính

  • Kiểm tra chuỗi có phải là chữ hay không bằng phương thức isascii trong python
  • Kiểm tra chuỗi có phải là chữ hay không bằng phương thức isalpha trong python
  • Kiểm tra chuỗi có phải là chữ hoặc số bằng phương thức isalnum trong python
  • Tổng kết và thực hành

Nội dung chính

  • Kiểm tra chuỗi có phải là chữ hay không bằng phương thức isascii trong python
  • Kiểm tra chuỗi có phải là chữ hay không bằng phương thức isalpha trong python
  • Kiểm tra chuỗi có phải là chữ hoặc số bằng phương thức isalnum trong python
  • Tổng kết và thực hành
  • Kiểm tra chuỗi có phải là chữ hay không bằng phương thức isascii trong python
  • Kiểm tra chuỗi có phải là chữ hay không bằng phương thức isalpha trong python
  • Kiểm tra chuỗi có phải là chữ hoặc số bằng phương thức isalnum trong python
  • Tổng kết và thực hành

Hướng dẫn cách kiểm tra chuỗi có phải là chữ hay không trong python. Bạn sẽ học được cách kiểm tra chuỗi có phải là chữ hay không bằng các phương thức isascii, isalpha, isalnum trong python sau bài viết này.

Kiểm tra chuỗi có phải là chữ hay không bằng phương thức isascii trong python

Chúng ta sử dụng phương thức isascii trong python để kiểm tra xem tất cả ký tự trong chuỗi có phải là ký tự ASCII hay không với cú pháp sau đây:

str.isascii()

Nếu như tất cả ký tự trong chuỗi là ký tự ASCII, thì kết quả True sẽ được trả về.

Cách sử dụng thực tiễn giống như ví dụ sau:

print("Hello".isascii())


print("8052".isascii())


print("東京".isascii())


print("Việt Nam".isascii())

Ký tự ASCII chứa cả dấu chấm ., dấu phẩy , và dấu gạch ngang -, do đó trong chuỗi Nếu chứa các ký tự này thì kết quả trả về cũng True.

print("-8052".isascii())


print("-3.1415".isascii())


print("2,334,500".isascii())

Nếu chuỗi ký tự là một ký tự trống, kết quả True cũng sẽ được trả về:

print("".isascii())

Kiểm tra chuỗi có phải là chữ hay không bằng phương thức isalpha trong python

Chúng ta sử dụng phương thức isalpha trong python để kiểm tra xem tất cả ký tự trong chuỗi có phải là ký tự chữ hay không với cú pháp sau đây:

str.isalpha()

Ký tự chữ hay còn gọi là Alphabetic character trong tiếng anh, hay 英文字 trong tiếng Nhật

Nếu như tất cả ký tự trong chuỗi là ký tự chữ, thì kết quả True sẽ được trả về.

Cách sử dụng thực tiễn giống như ví dụ sau:

print("Hello".isalpha())


print("8052".isalpha())

Theo như website chính thức của python thì ký tự Alphabetic là những ký tự được định nghĩa là “Letter” trong bảng mã Unicode, có nghĩa là những ký tự mà có thuộc tính category là một trong “Lm”, “Lt”, “Lu”, “Ll”, hoặc “Lo”. Và thuộc tính của những ký tự này khác với quy chuẩn của Unicode Standard.
Dựa theo định nghĩa này thì tiếng Việt có dấu, hoặc số viết bởi tiếng Nhật zenkaku sẽ không được tính là Alphabetic, do đó khi dùng phương thức isalpha trong python thì kết quả False sẽ được trả về.
Điều kỳ lạ là hán tự tiếng Nhật hay tiếng Trung lại được chấp nhận trong thuộc tính này.

print("Việt Nam".isalpha())


print("京都".isalpha())


print("Apple".isalpha())


print("765".isalpha())


print("七五三".isalpha())

Nếu chuỗi ký tự là một ký tự trống, kết quả False được trả về:

print("".isalpha())

Kiểm tra chuỗi có phải là chữ hoặc số bằng phương thức isalnum trong python

Chúng ta sử dụng phương thức isalnum trong python để kiểm tra xem tất cả ký tự trong chuỗi có phải là ký tự chữ hoặc số hay không với cú pháp sau đây:

str.isalnum()

Ký tự chữ hoặc số hay còn gọi là alphanumeric character trong tiếng anh, hay 英数字 trong tiếng Nhật

Nếu như tất cả ký tự trong chuỗi là ký tự chữ hoặc số, thì kết quả True sẽ được trả về.
Nói cách khác, Nếu như tất cả ký tự trong chuỗi là ký tự chữ (alphabetic) hoặc là số (numeric), thì kết quả True sẽ được trả về, và False trong các trường hợp còn lại.

Các bạn có thể tìm hiểu thêm về ký tự chữ số Alphanumeric tại Wikioedia

Cách sử dụng phương thức isalnum trong python thực tiễn giống như ví dụ sau:

print("Hello".isalnum())


print("100years".isalnum())


print("8052".isalnum())


print("Việt Nam".isalnum())


print("京都".isalnum())


print("Apple".isalnum())


print("765".isalnum())


print("七五三".isalnum())

Và Nếu chuỗi ký tự là một ký tự trống, kết quả False được trả về:

print("".isalnum())

Tổng kết và thực hành

Trên đây Kiyoshi đã hướng dẫn bạn cách kiểm tra chuỗi có phải là chữ hay không trong python với các phương thức isalpha , isdecimal và isnumeric rồi.
Ngoài ra, Nếu bạn muốn kiểm tra chuỗi có phải là số hay không trong python , hãy tham khảo bài viết Hướng dẫn kiểm tra chuỗi có phải là số hay không trong python nhé.
Và hãy cùng tìm hiểu những kiến thức sâu hơn về python trong các bài học tiếp theo.

Viết bởi Kiyoshi. Đã đăng ký bản quyền tác giả tại <a title="Bạn được tự do chia sẻ bài viết nhưng phải để lại đường link bài viết từ laptrinhcanban.com. Bạn không được sử dụng tài liệu cho mục đích thương mại. Không được phép chỉnh sửa nội dung được phát hành trên website của chúng tôi" style="color:#fff;background-color:silver" rel="license noopener" target="_blank" href="https://creativecommons.org/licenses/by-nc-nd/4.0/">Creativecommons</a>&nbsp;và <a title="Bạn được tự do chia sẻ bài viết nhưng phải để lại đường link bài viết từ laptrinhcanban.com. Bạn không được sử dụng tài liệu cho mục đích thương mại. Không được phép chỉnh sửa nội dung được phát hành trên website của chúng tôi" style="color:#fff;background-color:silver" target="_blank" rel="noopener" href="https://www.dmca.com/Protection/Status.aspx?ID=1631afcd-7c4a-467d-8016-402c5073e5cd" class="dmca-badge">DMCA</a><script src="https://images.dmca.com/Badges/DMCABadgeHelper.min.js">

Bài viết liên quan

Hãy chia sẻ và cùng lan tỏa kiến thức lập trình Nhật Bản tại Việt Nam!

HOME>> >>