Làm cách nào để kiểm tra xem một số nguyên có trong danh sách trong python không?

Trong python, danh sách là một tập hợp các kiểu dữ liệu, được sử dụng để lưu trữ tất cả các kiểu dữ liệu. Trong hướng dẫn này, chúng ta sẽ học trong python, cách kiểm tra xem một mục, phần tử, số, giá trị, đối tượng, từ có tồn tại trong danh sách hay không?

Làm cách nào để kiểm tra xem một số nguyên có trong danh sách trong python không?

1. Sử dụng toán tử “in”

Trong ví dụ này, chúng tôi đang sử dụng toán tử 'in' để kiểm tra xem một mục hoặc phần tử có tồn tại trong một chuỗi hay không. Nếu một mục tồn tại trong danh sách, nó sẽ trả về kết quả đầu ra là true, ngược lại nó sẽ trả về kết quả là false

Thí dụ

# Python3 code
# Check if element exists in the list
# Using in Operator

# Initialization of list
MyList = ['a','b','c','d','e']

# Print list
print("Our List: ", MyList)

# Check if 'b' exists in the list or not
if 'b' in MyList:
 print(" Item 'b' is present in the list")
else:
 Print(" Item 'b' is not present in the list")

đầu ra

Our List: ['a','b','c','d','e']
Item 'b' is present in the list

Thời gian thực hiện. 0. 0009 (Giây)

Giải trình

Trong ví dụ trên, chúng tôi đã sử dụng toán tử 'in' để kiểm tra xem 'b' có tồn tại trong MyList hay không. Chúng tôi đã sử dụng điều kiện if-else để in kết quả. Vì 'b' có trong danh sách nên khối if được thực thi. Nếu 'b' không có trong MyList thì khối khác sẽ được thực thi

2. Sử dụng toán tử “not in”

Trong ví dụ này, chúng tôi đang sử dụng toán tử "not in" để kiểm tra xem một mục hoặc phần tử có tồn tại trong danh sách hay không. Nếu phần tử không tồn tại trong danh sách, nó sẽ trả về true ngược lại là false

Thí dụ

# Python3 code
# Check if element exists in the list
# Using in Operator

# Initialization of list
MyList = ['a','b','c','d','e']

# print list
print("Our List: ", MyList)

# Check if 'a' exists in the list or not
if 'a' not in MyList :
 print(" item 'a' is not present in the list")
else:
 print(" 'a' is present in the list")

đầu ra

Our List: ['a','b','c','d','e']
'a' is present in the list

Thời gian thực hiện. 0. 0009 (Giây)

Giải thích.
Trong ví dụ trên, chúng ta đã sử dụng toán tử ‘not in’ để kiểm tra xem ‘a’ có tồn tại trong MyList hay không. Chúng tôi đã sử dụng điều kiện if-else để in kết quả. Toán tử not in kiểm tra xem 'a' có không có trong MyList hay không. Vì nó có trong danh sách nên khối else được thực thi. Nếu 'a' không có trong MyList thì khối if sẽ được thực thi.

3. Sử dụng danh sách. hàm đếm()

danh sách. đếm(x)

Chúng tôi sử dụng hàm count() để đếm mục 'x' trong danh sách và trả về số lần xuất hiện của mục 'x' trong danh sách. Nếu số lần xuất hiện lớn hơn 0, điều đó có nghĩa là mục 'x' tồn tại trong danh sách

Thí dụ

# Python3 code
# Check if element exists in the list
# Using in Operator

# Initialization of list
MyList = ['a','b','c','d','e']

# print list
print("Our List: ", MyList)
# Check if 'g' exists in the list or not using count()
if MyList.count('g') > 0 :
	print(" 'g' is present in the list")
else:
	print(" 'g' is not present in the list")

đầu ra

Our List: ['a','b','c','d','e']
'g' is not present in the list

Thời gian thực hiện. 0. 0019 (Giây)

Giải thích.
Trong ví dụ trên, chúng ta đã sử dụng hàm đếm(). Hàm này trả về không. thời gian một đối tượng xảy ra trong một trình tự. Trong trường hợp này, 'g' không xảy ra dù chỉ một lần, do đó, khối khác được thực thi.

4. Sử dụng Chức năng tùy chỉnh

Tìm một mục theo trình tự mà không cần sử dụng bất kỳ chức năng tích hợp nào. Mã được thảo luận ngắn gọn trong phần giải thích

Thí dụ

# Python3 code
# Check if element or number exists in the list
# Using for loop and if statement

# Initialization of list
MyList = ['a','b','c','d','e']

# Initialization a Flag variable
Counter=0

# print list
print("Our List: ", MyList)

# Run for loop
for i in MyList:
 	if(i == 'a') :
  	# If found initialize valuefound to 1
    		Counter=1
   
# Check if "valuefound" variable is set to 1   
if(Counter== 1) : 	
	print(" 'a' is present in the List")
else:
 	print(" 'a' is not present in the List")

đầu ra

Our List:  ['a', 'b', 'c', 'd', 'e']
'a' is present in the List

Thời gian thực hiện. 0. 0009 (Giây)

Giải trình

Trong đoạn mã trên, chúng tôi đã sử dụng vòng lặp for để lặp qua chuỗi i. và 'Danh sách của tôi'. Sau đó, bên trong vòng lặp for, chúng tôi đã sử dụng khối if để kiểm tra mọi giá trị của 'i' xem mục đó có tồn tại trong danh sách hay không. Nếu nó tồn tại, khối if sẽ đặt giá trị của 'bộ đếm' thành 1

Bên ngoài vòng lặp for, chúng ta lại sử dụng khối if-else để kiểm tra giá trị của 'counter'. Nếu giá trị bộ đếm là 1 thì nếu khối được thực thi, nếu không thì khối được thực thi.    

Thế giới kỹ thuật số ngày nay đang chuyển sang khoa học dữ liệu và học máy. "DỮ LIỆU" là điểm mấu chốt và là trọng tâm của công nghệ sắp tới. Dữ liệu này có thể ở một số dạng, nhưng nó thường ở dạng giá trị (số). Có rất nhiều phương pháp để thu thập dữ liệu nhưng cách phổ biến nhất là sử dụng Chuỗi.  

Trong bài viết này, bạn sẽ tìm hiểu cách kiểm tra xem Chuỗi có phải là số nguyên hay không trong Python. Trước khi tiếp tục, hãy cùng tóm tắt nhanh về Số nguyên và Chuỗi trong Python

Số nguyên là gì?

Số nguyên là số nguyên bao gồm số âm, số dương và số không. Số nguyên không bao gồm bất kỳ phân số hoặc phần hợp lý nào

Ví dụ. 23, -39, 4 -là số nguyên và 3. 54, 6. 34  không phải là số nguyên

Chuỗi trong Python là gì?

Chuỗi là chuỗi các ký tự, được đặt giữa các dấu ngoặc kép, dấu ngoặc kép (" ") hoặc dấu ngoặc đơn (' '). Các ký tự này bao gồm bảng chữ cái (a-z) (A-Z), số (0-9) và ký tự đặc biệt ( -, _ , %, $, & v.v.). Trong Python, bất kỳ giá trị nào nằm trong dấu ngoặc kép được gọi là chuỗi.  

Ví dụ. "Yêu thích" , '54', "ab1" , "sq_rt"

Tại sao chúng ta cần kiểm tra Số nguyên trong Chuỗi?

Có nhiều trường hợp bạn sẽ được yêu cầu kiểm tra xem một chuỗi có phải là số nguyên hay chuỗi có chứa bất kỳ số nào không. Nói chính xác, bạn phải để ý các trường hợp chuỗi ("45") thực sự là số (45).  

Hãy lấy một vài ví dụ từ cuộc sống hàng ngày của chúng ta, nơi bạn cần kiểm tra các số nguyên trong một chuỗi

  1. Xác thực đầu vào của người dùng
  2. Tìm kiếm dữ liệu trong chuỗi
  3. Kiểm tra chi tiết đầu vào hợp lệ trong một trường (Xem xét một biểu mẫu và một trường cho tên)

Làm cách nào để kiểm tra xem chuỗi có phải là số nguyên trong Python không?

Python cung cấp nhiều phương thức kiểm tra xem một chuỗi có bất kỳ số nào trong đó không. Một số trong số họ được liệt kê dưới đây

Phương pháp 01) Sử dụng Xử lý lỗi với int()

Phương pháp này hoàn toàn để kiểm tra "số nguyên" trong Python. Sử dụng phương pháp xử lý ngoại lệ, chúng tôi xác định xem "chuỗi" có phải là "số nguyên" hay không. Điều này đòi hỏi phải "cố gắng" đánh máy chuỗi thành một số nguyên. Nếu nó không đưa ra bất kỳ ValueErrors nào, thì đó là một số nguyên. Ngược lại, nếu xảy ra lỗi, khối ngoại trừ được thực thi, thay đổi cờ thành Sai

Hãy xem một ví dụ

________số 8

 

Lưu ý rằng tôi đã khởi tạo cờ thành True, vì chúng tôi đang thay đổi nó thành Sai, trong trường hợp ValueError

đầu ra

This is an integer

This is not an integer

This is not an integer

    

 

Chúng tôi có thể kết luận từ đầu ra rằng phương pháp xử lý ngoại lệ chỉ hoạt động đối với các số nguyên dưới dạng chuỗi chứ không phải đối với các chuỗi bao gồm cả số nguyên và chuỗi (hoặc các đối tượng khác). Trước khi tiếp tục, hãy áp dụng quy trình này cho nhiều trường hợp thử nghiệm khác nhau

Our List: ['a','b','c','d','e']
Item 'b' is present in the list
0

 

Điều này cho thấy phương thức này hoạt động trong việc xác định cả số nguyên dương và số nguyên âm trong một chuỗi. Mặc dù vậy, khi áp dụng cho chính một số nguyên, nó sẽ tạo ra giá trị Sai. Bạn có biết tại sao?

đầu ra

Our List: ['a','b','c','d','e']
Item 'b' is present in the list
1

 

Vì chúng tôi đã thử và kiểm tra phương pháp này với tất cả các trường hợp thử nghiệm có thể xảy ra, hãy liệt kê các trường hợp và liệu phương pháp này có hiệu quả với chúng hay không

Loại đầu vào Ví dụ đầu vàoKết quả thu đượcSố nguyên dương dưới dạng Chuỗi"10"Một số nguyênSố nguyên âm dưới dạng Chuỗi"-10"Một số nguyênSố thập phân dưới dạng Chuỗi"4. 5"Không phải là số nguyênMột chuỗi"FavTutor"Không phải là số nguyênMột số nguyên và một chuỗi"10 Phương thức"Không phải là số nguyênMột số nguyên là số nguyên10Không phải là số nguyên

 

Bảng trên hiển thị đầu ra của phương pháp xử lý ngoại lệ trong tất cả các trường hợp thử nghiệm có thể xảy ra.  

Cách 02) Sử dụng isdigit()

Phương thức isdigit() là một thuộc tính của đối tượng chuỗi để xác định xem chuỗi đó có phải là một chữ số hay không. Đây là phương pháp được biết đến nhiều nhất để kiểm tra xem một chuỗi có phải là số nguyên không. Phương thức này không nhận bất kỳ tham số nào, thay vào đó, nó trả về True nếu chuỗi là một số (số nguyên) và Sai nếu không phải

Mã bên dưới hiển thị việc sử dụng phương thức isdigit() trên tất cả các trường hợp thử nghiệm tiềm năng mà tôi có thể đưa ra. Bạn có thể thử mã trên các trường hợp thử nghiệm khác

Our List: ['a','b','c','d','e']
Item 'b' is present in the list
2

 

Chúng tôi đã áp dụng phương thức isdigit() cho tất cả các trường hợp thử nghiệm như đã thảo luận ở trên. Bạn có thể quan sát sự khác biệt giữa phương thức xử lý ngoại lệ và phương thức isdigit() từ đầu ra bên dưới

Our List: ['a','b','c','d','e']
Item 'b' is present in the list
3

 

Bạn có để ý không? . Không giống như phương thức xử lý ngoại lệ, phương thức isdigit() không hoạt động đối với số nguyên âm. Ngoài ra, nó đã báo lỗi khi gọi trên một số nguyên (đối tượng số nguyên). Tại sao như vậy?

Để kiểm tra các số âm bằng isdigit(), bạn cần thực hiện kiểm tra bổ sung trước khi kiểm tra isdigit(). Bạn co thể thử

Our List: ['a','b','c','d','e']
Item 'b' is present in the list
4

 

Thêm một kiểm tra bổ sung cho các ký hiệu ( '+' và '-") đảm bảo rằng khi gặp một số âm, được mô tả bằng dấu '-', mã sẽ không tránh số đó và xác nhận đó là một số nguyên. Ngoài ra, tôi đã thêm một kiểm tra khác trong khối khác. Vì vậy, ngay cả khi chuỗi không có bất kỳ ký hiệu nào làm tiền tố, nó vẫn đi qua phương thức isdigit()

đầu ra.  

Our List: ['a','b','c','d','e']
Item 'b' is present in the list
5

 

Như chúng ta đã làm với phương thức xử lý ngoại lệ, hãy tạo một bảng nhanh cho các trường hợp phương thức isdigit() hoạt động thành công để kiểm tra xem một chuỗi có phải là số nguyên trong Python không-

Loại đầu vào Ví dụ đầu vàoKết quả được tạoSố nguyên dương dưới dạng chuỗi"10"Một số nguyênSố nguyên âm dưới dạng chuỗi"-10"Không phải số nguyên. (Yêu cầu kiểm tra bổ sung cho các số đã ký) Số float dưới dạng Chuỗi"19. 90"Không phải là một chuỗi số nguyên"FavTutor"Không phải là một số nguyênMột số nguyên + chuỗi"10 phương pháp"Không phải là một số nguyên

 

Cách 03) Sử dụng phương thức innumeric()

Python cung cấp phương thức isnumeric() để kiểm tra xem một chuỗi có phải là số nguyên hay không. Phương thức này tương tự như phương thức isdigit() nhưng có một vài điểm khác biệt. Phương thức isnumeric() kiểm tra xem tất cả các ký tự trong chuỗi có phải là số không. Trong khi phương thức isdigit() kiểm tra xem các chuỗi chỉ chứa các chữ số. Ngoài ra, phương thức isnumeric() hoạt động cho Unicode. Nó kiểm tra xem một ký tự có phải là biểu diễn Unicode của một giá trị số hay không.  

Bây giờ, chắc hẳn bạn đang thắc mắc về "Unicode"?

Bạn sẽ ngạc nhiên khi các chuỗi Python sử dụng Tiêu chuẩn Unicode để biểu thị các ký tự

Unicode là gì? . Chà, có một câu chuyện dài đằng sau việc giới thiệu Chuẩn Unicode. Nhưng vượt qua cuộc rượt đuổi, Tiêu chuẩn Unicode đã được giới thiệu để cung cấp mã (mã được máy tính giải thích như ASCII) cho tất cả các ngôn ngữ trên thế giới. Nó cung cấp cho mỗi ký tự mã duy nhất của riêng mình. Do đó, làm cho Python chấp nhận các định dạng bằng các ngôn ngữ khác ngoài tiếng Anh, như chữ số La Mã.  

Quay lại với phương thức isnumeric(). Hãy lấy một ví dụ -

Our List: ['a','b','c','d','e']
Item 'b' is present in the list
6

 

đầu ra

Our List: ['a','b','c','d','e']
Item 'b' is present in the list
7

 

Bạn có thể áp dụng điều kiện tương tự, như chúng tôi đã làm trước đây, để kiểm tra các dấu hiệu ('+' và '-'). Do đó, chúng ta cũng có thể phát hiện các số âm bằng phương thức isnumeric()

Cách 04) Sử dụng re module

Python cung cấp một "mô-đun tái" tích hợp để hoạt động với các biểu thức Chính quy. Trên thực tế, 're' là viết tắt của "Biểu thức chính quy"

"Biểu thức chính quy" là gì? . Các biểu thức này được sử dụng để tìm một mẫu nhất định trong một chuỗi.
Có thể sử dụng nhiều hàm trong mô-đun lại Python để xác định xem một chuỗi có phải là số nguyên hay không. Để cụ thể hơn, họ "tìm kiếm" trong định dạng chuỗi đã cho cho mẫu đã xác định (trong trường hợp của chúng tôi là các chữ số). Mẫu cụ thể này có thể được thể hiện bằng "siêu ký tự" hoặc "trình tự đặc biệt. " Trước khi chuyển sang phương pháp, hãy cùng tìm hiểu về siêu ký tự và trình tự đặc biệt.

Siêu ký tự và chuỗi đặc biệt là gì? . Chúng thường được sử dụng trong các biểu thức chính quy để biểu thị một tập hợp các ký tự hoặc để đánh dấu phần đầu, phần cuối hoặc số lần xuất hiện của một chuỗi.  

Ví dụ - " [] " đại diện cho một tập hợp các ký tự;

Bạn phải biết về tập ký tự " [] " để kiểm tra xem một chuỗi có phải là số nguyên trong Python hay không bằng cách sử dụng lại mô-đun. " [0-9] " trả về giá trị khớp cho bất kỳ chữ số nào trong khoảng từ 0 đến 9. (mà chúng tôi đang tìm kiếm. )

Dãy số đặc biệt cũng là một nhóm ký tự có ý nghĩa đặc biệt. Sự khác biệt duy nhất là nó bắt đầu bằng " \ ". Vì vậy, "\" được theo sau bởi bất kỳ ký tự nào làm cho chuỗi đó trở thành một chuỗi đặc biệt

Ví dụ - " \d " trả về kết quả khớp trong đó chuỗi chứa các chữ số (0-9);

Hãy quay lại sử dụng các hàm RegEx để kiểm tra xem một chuỗi có phải là số nguyên không-

chức năng 1. Sử dụng lại. Tìm kiếm()

Phương thức này trả về một đối tượng Match (một đối tượng chứa thông tin về tìm kiếm và kết quả) nếu có kết quả khớp với chuỗi. Nó tìm kiếm sự trùng khớp của mẫu đã chỉ định (ở đây là 0-9) trong chuỗi đã cho. Do đó, nó không kiểm tra nghiêm ngặt xem một chuỗi có phải chỉ là một số nguyên hay không. Thay vào đó, nó kiểm tra xem chuỗi có chứa bất kỳ chữ số nào không.  

Hãy xem một ví dụ trước khi thử phương thức search() với tất cả các trường hợp thử nghiệm của chúng ta

This is an integer

This is not an integer

This is not an integer

    
0

 

Điều quan trọng là phải nhập mô-đun lại để gọi hàm search(). Ở đó. hàm search() tìm kiếm các chữ số [0-9] trong chuỗi đã cho và trả về Đối tượng khớp, như được thấy bên dưới-

This is an integer

This is not an integer

This is not an integer

    
1

 

Thuộc tính span hiển thị vị trí bắt đầu và kết thúc của trận đấu. Lưu ý rằng chức năng tìm kiếm () dừng ngay khi nó khớp đầu tiên. Ngoài ra, nó trả về Không có trong trường hợp không tìm thấy kết quả phù hợp

Hãy thử chức năng tìm kiếm () trên tất cả các trường hợp thử nghiệm của chúng tôi

This is an integer

This is not an integer

This is not an integer

    
2

 

đầu ra

This is an integer

This is not an integer

This is not an integer

    
3

 

Ngạc nhiên bởi đầu ra? .  

Thay thế [0-9] bằng "\ d" và bạn sẽ thấy đầu ra mong muốn của mình-

This is an integer

This is not an integer

This is not an integer

    
4

 

Mặc dù sự thay thế này cũng chỉ hoạt động để phân biệt các số với các chuỗi và không dành riêng cho các số nguyên

đầu ra

This is an integer

This is not an integer

This is not an integer

    
5

 

chức năng 2. Sử dụng lại. tìm tất cả ()

Hàm findall() trả về danh sách tất cả các chữ số mà hàm "tìm thấy" trong chuỗi. Không giống như hàm search() trong mô-đun re, nó phân tích cú pháp thông qua chuỗi hoàn chỉnh và trả về danh sách tất cả các chữ số (khớp qua mẫu [0-9]) trong chuỗi. Hãy lấy một ví dụ nhanh về cách nó hoạt động.  

This is an integer

This is not an integer

This is not an integer

    
6

 

đầu ra

This is an integer

This is not an integer

This is not an integer

    
7

 

Lưu ý cách hàm findall() đã liệt kê tất cả các chữ số trong chuỗi. Hãy sử dụng hàm findall() với tất cả các trường hợp thử nghiệm của chúng ta-

This is an integer

This is not an integer

This is not an integer

    
8

 

Bạn có thể tìm danh sách testcase từ ví dụ trên. Hàm findall() trả về một chuỗi rỗng trong trường hợp nó không tìm thấy bất kỳ kết quả khớp nào với mẫu trong chuỗi

đầu ra

This is an integer

This is not an integer

This is not an integer

    
9

 

Hàm này () cũng không chỉ hoạt động đối với số nguyên, nhưng để liệt kê (hoặc kiểm tra) xem một chuỗi có bất kỳ chữ số nào không (0-9)

Chức năng 3. Sử dụng lại. cuộc thi đấu()

Hàm này cũng trả về một Đối tượng khớp khi tìm thấy kết quả khớp cho chuỗi cụ thể ([0-9] hoặc "[+-]?\d+$" ) trong chuỗi đã cho. Ví dụ,

Our List: ['a','b','c','d','e']
Item 'b' is present in the list
00

 

đầu ra

Our List: ['a','b','c','d','e']
Item 'b' is present in the list
01

 

Cẩn thận quan sát đầu ra. Bạn sẽ nhận thấy sự khác biệt giữa các hàm search() và match().  

Khó để tìm? .  

Bạn biết rằng cả hai hàm match() và search() đều trả về Đối tượng Match cho các chuỗi. Hàm search() trả về ngay khi nhận được một trong các chữ số trong khi hàm match() hoàn thành việc "khớp" và trả về khoảng (chỉ số bắt đầu-kết thúc) cho tất cả các chữ số trong chuỗi

Tôi sẽ giao nhiệm vụ áp dụng hàm match() cho bạn. Hãy thử chức năng này trên các trường hợp thử nghiệm khác nhau và so sánh kết quả đầu ra. Bạn sẽ hiểu rõ hơn về cách thức hoạt động của mô-đun này

Sự kết luận

Việc xác định xem một chuỗi có phải là Số nguyên hay không trong Python là một nhiệm vụ cơ bản được thực hiện để xác thực đầu vào của người dùng. Nhưng có một sự khác biệt giữa nhiệm vụ "Kiểm tra xem Chuỗi 'có phải' là Số nguyên trong Python không" và "Kiểm tra xem Chuỗi 'có' bất kỳ số nào trong Python". Trong bài viết trên, các phương pháp isdigit(), isnumeric() và xử lý ngoại lệ có thể được sử dụng cụ thể cho lần đầu tiên, tôi. e. "Để kiểm tra xem một chuỗi có phải là số nguyên không" trong khi mô-đun lại được sử dụng cho chuỗi sau

Ngoài ra còn có các phương thức như sử dụng các hàm any() và map() với isdigit() (hoặc các phương thức được chỉ định khác). Bạn cũng có thể tìm hoặc thậm chí tạo các biến thể khác nhau bằng các phương pháp đã nêu ở trên. Mỗi phương pháp có lĩnh vực ứng dụng riêng. Hãy nhớ so sánh các phương pháp khác nhau để tìm ra phương pháp tốt nhất cho mã của bạn. mã hóa hạnh phúc