Hướng dẫn check if list contains integer python - kiểm tra xem danh sách có chứa số nguyên python không

Cách thông thường để kiểm tra xem có thể chuyển đổi thứ gì đó thành

for item in mylist:
    try:
        int_value = int(item)
    except ValueError:
        pass
    else:
        mynewlist.append(item) # or append(int_value) if you want numbers
4 hay không là
for item in mylist:
    try:
        int_value = int(item)
    except ValueError:
        pass
    else:
        mynewlist.append(item) # or append(int_value) if you want numbers
5 và xem, tuân theo nguyên tắc EAFP:

try:
    int_value = int(string_value)
except ValueError:
    # it wasn't an int, do something appropriate
else:
    # it was an int, do something appropriate

Vì vậy, trong trường hợp của bạn:

for item in mylist:
    try:
        int_value = int(item)
    except ValueError:
        pass
    else:
        mynewlist.append(item) # or append(int_value) if you want numbers

Trong hầu hết các trường hợp, một vòng lặp xung quanh một số mã tầm thường kết thúc bằng

for item in mylist:
    try:
        int_value = int(item)
    except ValueError:
        pass
    else:
        mynewlist.append(item) # or append(int_value) if you want numbers
6 có thể được biến thành một danh sách hiểu, biểu thức trình tạo hoặc gọi đến
for item in mylist:
    try:
        int_value = int(item)
    except ValueError:
        pass
    else:
        mynewlist.append(item) # or append(int_value) if you want numbers
7 hoặc
for item in mylist:
    try:
        int_value = int(item)
    except ValueError:
        pass
    else:
        mynewlist.append(item) # or append(int_value) if you want numbers
8. Nhưng ở đây, bạn không thể, bởi vì không có cách nào để đưa ____ 15/________ 20 vào một biểu thức.

Nhưng nếu bạn bọc nó trong một chức năng, bạn có thể:

def raises(func, *args, **kw):
    try:
        func(*args, **kw)
    except:
        return True
    else:
        return False

mynewlist = [item for item in mylist if not raises(int, item)]

… Hoặc, nếu bạn thích:

mynewlist = filter(partial(raises, int), item)

Nó sạch hơn khi sử dụng nó theo cách này:

def raises(exception_types, func, *args, **kw):
    try:
        func(*args, **kw)
    except exception_types:
        return True
    else:
        return False

Bằng cách này, bạn có thể vượt qua nó là ngoại lệ (hoặc tuple của các trường hợp ngoại lệ) mà bạn đang mong đợi và những điều đó sẽ trả lại

def raises(func, *args, **kw):
    try:
        func(*args, **kw)
    except:
        return True
    else:
        return False

mynewlist = [item for item in mylist if not raises(int, item)]
1, nhưng nếu có bất kỳ trường hợp ngoại lệ bất ngờ nào được nêu ra, chúng sẽ lan truyền. Vì thế:

mynewlist = [item for item in mylist if not raises(ValueError, int, item)]

… Sẽ làm những gì bạn muốn, nhưng:

mynewlist = [item for item in mylist if not raises(ValueError, item, int)]

Càng sẽ tăng một

def raises(func, *args, **kw):
    try:
        func(*args, **kw)
    except:
        return True
    else:
        return False

mynewlist = [item for item in mylist if not raises(int, item)]
2, như nó nên.

Trong hướng dẫn này, chúng tôi sẽ xem xét cách kiểm tra xem danh sách chỉ chứa các số trong Python với sự trợ giúp của một số ví dụ.

Làm thế nào để kiểm tra xem tất cả các yếu tố danh sách là số?

Hướng dẫn check if list contains integer python - kiểm tra xem danh sách có chứa số nguyên python không

Bạn có thể sử dụng kết hợp chức năng Python tích hợp

def raises(func, *args, **kw):
    try:
        func(*args, **kw)
    except:
        return True
    else:
        return False

mynewlist = [item for item in mylist if not raises(int, item)]
3 và
def raises(func, *args, **kw):
    try:
        func(*args, **kw)
    except:
        return True
    else:
        return False

mynewlist = [item for item in mylist if not raises(int, item)]
4 để kiểm tra xem danh sách chỉ chứa các số. Chẳng hạn, bạn có thể sử dụng các bước sau để kiểm tra xem tất cả các phần tử trong danh sách có phải là số nguyên trong Python không -

  1. Trong một danh sách hiểu, đối với mỗi phần tử trong danh sách, hãy kiểm tra xem nó có phải là số nguyên sử dụng hàm
    def raises(func, *args, **kw):
        try:
            func(*args, **kw)
        except:
            return True
        else:
            return False
    
    mynewlist = [item for item in mylist if not raises(int, item)]
    
    3 không.
  2. Áp dụng python tích hợp & nbsp; ____ ____ 24 & nbsp; hàm để trả về & nbsp; ________ 21 & nbsp; chỉ khi tất cả các mục trong danh sách hiểu biết trên tương ứng với & nbsp; ________ 21.

Sau đây là mã để kiểm tra xem tất cả các phần tử trong danh sách có phải là số nguyên hay không.

# check if all elements in ls are integers
all([isinstance(item, int) for item in ls])

Hãy cùng xem một ví dụ.

# list of numbers
ls = [1, 2, 3, 4]
# check if list contains only numbers
print(all([isinstance(item, int) for item in ls]))

Output:

True

Chúng tôi nhận được

def raises(func, *args, **kw):
    try:
        func(*args, **kw)
    except:
        return True
    else:
        return False

mynewlist = [item for item in mylist if not raises(int, item)]
1 là đầu ra vì tất cả các yếu tố trong danh sách
mynewlist = filter(partial(raises, int), item)
0 là số nguyên.

Hãy cùng xem một ví dụ khác.

for item in mylist:
    try:
        int_value = int(item)
    except ValueError:
        pass
    else:
        mynewlist.append(item) # or append(int_value) if you want numbers
0

Output:

for item in mylist:
    try:
        int_value = int(item)
    except ValueError:
        pass
    else:
        mynewlist.append(item) # or append(int_value) if you want numbers
1

Ở đây chúng tôi nhận được

mynewlist = filter(partial(raises, int), item)
1 làm đầu ra vì không phải tất cả các yếu tố trong danh sách
mynewlist = filter(partial(raises, int), item)
0 đều là số nguyên. Một yếu tố, Cat Cat trong danh sách là một chuỗi.

Kiểm tra xem tất cả các mục trong danh sách các chuỗi là số

Tuy nhiên, nếu bạn có một danh sách các chuỗi và muốn kiểm tra xem tất cả các yếu tố trong danh sách có phải là chữ số hay không, bạn có thể sử dụng mã sau.list of strings and want to check whether all the elements in the list are digits or not, you can use the following code.

for item in mylist:
    try:
        int_value = int(item)
    except ValueError:
        pass
    else:
        mynewlist.append(item) # or append(int_value) if you want numbers
2

Output:

True

Ở đây chúng tôi kiểm tra xem mỗi phần tử trong danh sách các chuỗi,

mynewlist = filter(partial(raises, int), item)
0 có phải là giá trị số hay không sử dụng hàm chuỗi
mynewlist = filter(partial(raises, int), item)
4 hay không. Chúng tôi nhận được
def raises(func, *args, **kw):
    try:
        func(*args, **kw)
    except:
        return True
    else:
        return False

mynewlist = [item for item in mylist if not raises(int, item)]
1 là đầu ra vì tất cả các chuỗi trong danh sách
mynewlist = filter(partial(raises, int), item)
0 là các ký tự số.

Bạn cũng có thể quan tâm đến -

  • Python - Kiểm tra xem chuỗi chỉ chứa các số
  • Python - Danh sách kiểm tra chứa tất cả các yếu tố của danh sách khác


Đăng ký nhận bản tin của chúng tôi để biết thêm hướng dẫn và hướng dẫn thông tin. Chúng tôi không spam và bạn có thể từ chối bất cứ lúc nào.
We do not spam and you can opt out any time.

  • Hướng dẫn check if list contains integer python - kiểm tra xem danh sách có chứa số nguyên python không

    Piyush là một nhà khoa học dữ liệu đam mê sử dụng dữ liệu để hiểu mọi thứ tốt hơn và đưa ra quyết định sáng suốt.Trong quá khứ, anh ta làm việc như một nhà khoa học dữ liệu cho ZS và có bằng kỹ sư từ IIT Roorkee.Sở thích của anh ấy bao gồm xem cricket, đọc sách và làm việc trên các dự án phụ.

    Xem tất cả các bài viết