Danh sách Python xóa phần tử theo giá trị

Kiểu dữ liệu Danh sách Python giúp bạn lưu trữ các mục thuộc các loại dữ liệu khác nhau theo trình tự có thứ tự. Dữ liệu được ghi bên trong dấu ngoặc vuông ([]) và các giá trị được phân tách bằng dấu phẩy (,)

Trong Python, có rất nhiều phương thức có sẵn trên kiểu dữ liệu danh sách giúp bạn loại bỏ một phần tử khỏi một danh sách nhất định. Các phương thức là remove(), pop() và clear()

Trong bài viết này, chúng tôi sẽ thảo luận về các cách khác nhau để xóa một phần tử khỏi danh sách

Xóa một phần tử khỏi Danh sách theo giá trị bằng cách sử dụng danh sách. di dời()

Danh sách của Python cung cấp một hàm thành viên để xóa một phần tử khỏi danh sách i. e

list.remove(value)

Nó loại bỏ sự xuất hiện đầu tiên của phần tử đã cho khỏi danh sách

Ví dụ,

Giả sử chúng ta có một danh sách các số i. e

# List of numbers
listOfnum = [12, 44, 56, 45, 34, 3, 56, 4, 33, 44, 56]

Hãy xóa 56 khỏi danh sách đã cho bằng cách sử dụng danh sách. loại bỏ() tôi. e

Đọc thêm

  • Chuyển đổi danh sách thành chuỗi trong python bằng cách sử dụng phép nối () / giảm () /…
  • con trăn. Đếm các ký tự hoa trong một chuỗi
  • con trăn. Xóa phần tử cuối cùng khỏi danh sách
  • Bộ trăn. Xóa một hoặc nhiều phần tử khỏi một tập hợp?

# Remove first occurrence of 56 from List 
listOfnum.remove(56)

Nó sẽ xóa lần xuất hiện đầu tiên của 56 khỏi danh sách trên. Danh sách nội dung sẽ được ngay bây giờ,

[12, 44, 45, 34, 3, 56, 4, 33, 44, 56]

Nếu chúng ta cố xóa phần tử không tồn tại trong danh sách thì hãy liệt kê. remove() sẽ ném ngoại lệ
Do đó trước khi gọi danh sách. remove() chúng ta cũng nên,

Kiểm tra xem phần tử có tồn tại trong danh sách i không. e

# Check if element exist in List, before removing
if 99 in listOfnum:
    listOfnum.remove(99)
else:
    print("Given Element Not Found in List")

Hoặc sử dụng thử / ngoại trừ tôi. e

# If given element doesn't exists in list, then remove() can throw Error
# Therefore use try / except while calling list.remove()
try :
    listOfnum.remove(99)
except ValueError:
    print("Given Element Not Found in List")

Những bài viết liên quan

  • con trăn. Xóa các phần tử khỏi danh sách trong khi lặp lại
  • con trăn. Xóa các phần tử khỏi danh sách theo giá trị (lần đầu tiên hoặc tất cả các lần xuất hiện)
  • con trăn. Xóa các phần tử khỏi danh sách theo chỉ mục hoặc chỉ mục

Xóa một phần tử khỏi Danh sách theo Chỉ mục bằng cách sử dụng danh sách. nhạc pop()

list.pop(index)

Trong danh sách python, hàm pop() sẽ xóa phần tử tại chỉ mục đã cho và cũng trả về phần tử đã xóa
Nếu chỉ mục không được đưa ra thì nó sẽ xóa phần tử cuối cùng

Ví dụ như,

Chúng tôi có một danh sách các int tôi. e

# List of numbers
listOfnum = [12, 44, 12, 56, 45, 34, 3, 56, 4, 33, 44, 56]

Hãy loại bỏ phần tử tại chỉ số 2

________số 8_______

Nội dung của danh sách sẽ là bây giờ

[12, 44, 56, 45, 34, 3, 56, 4, 33, 44, 56]

Giá trị trả về là 12 i. e. phần tử đã xóa

danh sách. pop() và Lỗi thời gian chạy

Nếu danh sách. pop() được gọi là chỉ mục nằm ngoài ranh giới của Danh sách thì nó sẽ tạo ra lỗi thời gian chạy
Do đó, chúng ta phải luôn kiểm tra kích thước của danh sách trước khi gọi danh sách. pop() tôi. e

# List of numbers
listOfnum = [12, 44, 56, 45, 34, 3, 56, 4, 33, 44, 56]
0

hoặc Sử dụng thử/ngoại trừ

# List of numbers
listOfnum = [12, 44, 56, 45, 34, 3, 56, 4, 33, 44, 56]
1

Xóa một phần tử khỏi Danh sách bằng del

Trong python del là một từ khóa và có thể được sử dụng để xóa phần tử trong danh sách theo chỉ mục i. e

# List of numbers
listOfnum = [12, 44, 56, 45, 34, 3, 56, 4, 33, 44, 56]
2

Nó sẽ xóa phần tử ở chỉ số 2 trong danh sách

Nếu del list[index] được gọi trên một chỉ mục nằm ngoài ranh giới của Danh sách thì nó sẽ tạo ra lỗi thời gian chạy
Do đó, hãy kiểm tra kích thước của danh sách trước khi gọi del i. e

# List of numbers
listOfnum = [12, 44, 56, 45, 34, 3, 56, 4, 33, 44, 56]
3

hoặc Sử dụng thử/ngoại trừ

# List of numbers
listOfnum = [12, 44, 56, 45, 34, 3, 56, 4, 33, 44, 56]
4

Ví dụ hoàn chỉnh như sau,

# List of numbers
listOfnum = [12, 44, 56, 45, 34, 3, 56, 4, 33, 44, 56]
5

đầu ra

# List of numbers
listOfnum = [12, 44, 56, 45, 34, 3, 56, 4, 33, 44, 56]
6

 

 

quảng cáo

Cảm ơn vì đã đọc

Bài viết này sẽ thảo luận về các cách khác nhau để loại bỏ lần đầu tiên hoặc tất cả các lần xuất hiện của một phần tử khỏi danh sách theo giá trị


Mục lục

con trăn. Xóa lần xuất hiện đầu tiên của phần tử khỏi danh sách theo giá trị

Trong Python, lớp list cung cấp hàm remove(value) để xóa một phần tử khỏi danh sách. Nó chấp nhận một giá trị làm đối số và xóa lần xuất hiện đầu tiên của giá trị đó khỏi danh sách. Nhưng nếu giá trị đã cho không tồn tại trong danh sách, thì nó sẽ làm tăng ValueError

Bây giờ, hãy sử dụng hàm remove() để xóa lần xuất hiện đầu tiên của phần tử 52 khỏi danh sách các số,

list_of_num = [51, 52, 53, 54, 55, 52, 57, 52, 59]

# Remove first occurrence of 52 from list
list_of_num.remove(52)

print(list_of_num)

đầu ra

[51, 53, 54, 55, 52, 57, 52, 59]

Danh sách có nhiều lần xuất hiện là 52, nhưng hàm remove() chỉ xóa lần xuất hiện đầu tiên

con trăn. Xóa phần tử khỏi danh sách theo giá trị nếu tồn tại

Nếu chúng ta gọi hàm remove() để xóa một phần tử không tồn tại trong danh sách thì sao? . Ví dụ,

Đọc thêm

  • Chuyển đổi danh sách thành chuỗi trong python bằng cách sử dụng phép nối () / giảm () /…
  • con trăn. Xóa phần tử cuối cùng khỏi danh sách
  • Bộ trăn. Xóa một hoặc nhiều phần tử khỏi một tập hợp?
  • Chỉ mục danh sách Python()

list_of_num = [51, 52, 53, 54, 55, 52, 57, 52, 59]

list_of_num.remove(70)

đầu ra

    list_of_num.remove(70)
ValueError: list.remove(x): x not in list

Chúng tôi đang cố xóa một phần tử có giá trị 72 khỏi danh sách, nhưng danh sách không có giá trị đó. Do đó, nó đã làm tăng lỗi giá trị. Đầu tiên chúng ta nên kiểm tra xem phần tử có tồn tại trong danh sách hay không trước khi gọi hàm remove(). Ví dụ,

list_of_num = [51, 52, 53, 54, 55, 52, 57, 52, 59]

elem = 70

if elem in list_of_num:
    list_of_num.remove(elem)

print(list_of_num)

đầu ra

[51, 52, 53, 54, 55, 52, 57, 52, 59]

con trăn. Xóa tất cả các lần xuất hiện của một phần tử khỏi danh sách theo giá trị

Như chúng ta đã thấy trong các ví dụ trước, hàm remove() luôn xóa phần tử xuất hiện đầu tiên khỏi danh sách. Để xóa tất cả các lần xuất hiện của một phần tử, chúng ta cần gọi hàm remove() trong một vòng lặp, cho đến khi tất cả các lần xuất hiện không bị xóa. Ví dụ,

def remove_all_occurrences(list_obj, value):
    while value in list_obj:
        list_of_num.remove(value)


list_of_num = [51, 52, 52, 55, 55, 52, 57, 52, 55]

remove_all_occurrences(list_of_num, 52)

print(list_of_num)

đầu ra

[51, 55, 55, 57, 55]

Nó đã xóa tất cả các lần xuất hiện của 52 khỏi danh sách các số

con trăn. Xóa tất cả các lần xuất hiện của nhiều phần tử khỏi danh sách theo giá trị

Trong ví dụ trước, chúng tôi đã xóa tất cả các lần xuất hiện của một phần tử khỏi danh sách. Vì vậy, chúng ta có thể sử dụng logic tương tự để xóa tất cả các lần xuất hiện của nhiều phần tử khỏi danh sách

Giả sử chúng tôi có một danh sách các số và chúng tôi có một danh sách giá trị khác mà chúng tôi muốn xóa cho danh sách ban đầu. Chúng tôi muốn xóa tất cả các phần tử của list2 khỏi list1

Chúng tôi đã tạo một chức năng riêng biệt cho cùng một chức năng, nó chấp nhận hai danh sách khác nhau làm đối số,

  • Cái đầu tiên là danh sách mà chúng ta cần xóa các phần tử
  • Danh sách thứ hai chứa các phần tử mà chúng tôi muốn xóa

Đối với mỗi phần tử của danh sách thứ hai, nó sẽ xóa tất cả các lần xuất hiện khỏi danh sách ban đầu. Hãy hiểu bằng một ví dụ,

def remove_all_by_values(list_obj, values):
    for value in values:
        while value in list_obj:
            list_of_num.remove(value)


list_of_num = [51, 52, 52, 55, 55, 52, 57, 52, 55, 61, 62]

remove_all_by_values(list_of_num, [52, 55, 57])

print(list_of_num)

đầu ra

[51, 61, 62]

Nó đã xóa tất cả các lần xuất hiện của 52, 55 và 57 khỏi danh sách

Bản tóm tắt

Trong bài viết này, chúng ta tìm hiểu các cách khác nhau để xóa lần xuất hiện đầu tiên hoặc tất cả các phần tử khỏi danh sách. Chúng tôi cũng đã phân tích cách xóa nhiều phần tử khỏi danh sách theo giá trị