Đưa ra một danh sách các số, hãy viết một chương trình Python để xóa nhiều yếu tố khỏi danh sách dựa trên điều kiện đã cho.
Example:
Input: [12, 15, 3, 10] Output: Remove = [12, 3], New_List = [15, 10] Input: [11, 5, 17, 18, 23, 50] Output: Remove = [1:5], New_list = [11, 50]
Nhiều yếu tố có thể bị xóa khỏi danh sách trong Python, dựa trên kiến thức chúng ta có về dữ liệu. Giống như, chúng ta chỉ biết các giá trị sẽ bị xóa hoặc cũng biết các chỉ mục của các giá trị đó. Hãy cùng xem các ví dụ khác nhau dựa trên một kịch bản khác.
Ví dụ #1: Hãy nói rằng chúng tôi muốn xóa từng phần tử trong danh sách chia hết cho 2 hoặc tất cả các số chẵn. & NBSP; Let’s say we want to delete each element in the list which is divisible by 2 or all the even numbers.
Python3
list1
=
11 5 17 231
11 5 17 2322____23
11 5 17 234
11 5 17 235
11 5 17 236
11 5 17 232
11 5 17 238
11 5 17 239
=
=
11 502
11 503
11 504
11 505
11 506
11 507
11 508
11 509
Output:
New list after removing all even numbers: [11, 5, 17, 23]
Ví dụ #2: Sử dụng danh sách hiểu Using list comprehension
Loại bỏ tất cả các yếu tố thậm chí trong danh sách cũng tốt như chỉ bao gồm tất cả các yếu tố không chẵn [nghĩa là các yếu tố lẻ]. & NBSP;
Python3
list1
=
11 5 17 231
11 5 17 2322____23
11 5 17 234
11 506
11 507
=
2=
3Output:
11 5 17 23
11 5 17 23
511 5 17 23
6 11 5 17 23
211 5 17 23
8 11 5 17 23
9 =
=
11 50
211 50
3Remove adjacent elements using list slicing
New list after removing all even numbers: [11, 5, 17, 23]
Python3
list1
=
11 5 17 231
11 5 17 2322____23
11 5 17 234
11 5 17 235
11 5 17 236
11 5 17 232
11 5 17 238
11 5 17 239
=
=
11 502
11 503
Output:
11 50
New list after removing all even numbers: [11, 5, 17, 23]
Using list comprehension
Ví dụ #2: Sử dụng danh sách hiểu
Python3
list1
=
11 5 17 231
11 5 17 2322____23
11 5 17 234
11 5 17 235
11 5 17 236
11 5 17 232
11 5 17 238
11 5 17 239
=
=
11 502
11 503
11 506
11 507
New list after removing all even numbers: [11, 5, 17, 23]35
11 509
Output:
New list after removing unwanted numbers: [17, 18, 23, 50]
New list after removing all even numbers: [11, 5, 17, 23]
When index
of elements is known.
Though indexes of elements in known, deleting the elements randomly will change the values of indexes. Hence, it is always recommended to delete the largest indices first. Using this strategy, index of smaller values will not be changed. We can sort the list in reverse order and delete the elements of list in descending order.
Python3
list1
=
11 5 17 231
11 5 17 2322____23
11 5 17 234
11 5 17 235
11 5 17 236
11 5 17 232
11 5 17 238
11 5 17 239
=
=
11 502
11 503
New list after removing all even numbers: [11, 5, 17, 23]
Ví dụ #2: Sử dụng danh sách hiểu
Output:
5 17 50
Loại bỏ tất cả các yếu tố thậm chí trong danh sách cũng tốt như chỉ bao gồm tất cả các yếu tố không chẵn [nghĩa là các yếu tố lẻ]. & NBSP;
Python3
list1
=
11 5 17 231
11 5 17 2322____23
11 5 17 234
11 506
11 5 17 2308
11 5 17 23
511 5 17 23
6 11 5 17 23
211 5 17 23
8 11 5 17 23
9 =
=
11 50
211 50
3O[nlogn]
New list after removing all even numbers: [11, 5, 17, 23]
O[1]