Lấy cảm hứng từ câu trả lời tuyệt vời của @gnibbler [nhưng terse!], Chúng tôi có thể áp dụng phương pháp đó để bản đồ vào nhiều phân vùng:
from collections import defaultdict
def splitter[l, mapper]:
"""Split an iterable into multiple partitions generated by a callable mapper."""
results = defaultdict[list]
for x in l:
results[mapper[x]] += [x]
return results
Sau đó,
>>> l = [1, 2, 3, 4, 2, 3, 4, 5, 6, 4, 3, 2, 3]
>>> split = splitter[l, lambda x: x % 2 == 0] # partition l into odds and evens
>>> split.items[]
>>> [[False, [1, 3, 3, 5, 3, 3]], [True, [2, 4, 2, 4, 6, 4, 2]]]
2 sau đó có thể được sử dụng như sau:>>> l = [1, 2, 3, 4, 2, 3, 4, 5, 6, 4, 3, 2, 3]
>>> split = splitter[l, lambda x: x % 2 == 0] # partition l into odds and evens
>>> split.items[]
>>> [[False, [1, 3, 3, 5, 3, 3]], [True, [2, 4, 2, 4, 6, 4, 2]]]
Điều này hoạt động cho hơn hai phân vùng với ánh xạ phức tạp hơn [và trên các trình lặp cũng vậy]:
>>> import math
>>> l = xrange[1, 23]
>>> split = splitter[l, lambda x: int[math.log10[x] * 5]]
>>> split.items[]
[[0, [1]],
[1, [2]],
[2, [3]],
[3, [4, 5, 6]],
[4, [7, 8, 9]],
[5, [10, 11, 12, 13, 14, 15]],
[6, [16, 17, 18, 19, 20, 21, 22]]]
Hoặc sử dụng từ điển để lập bản đồ:
>>> map = {'A': 1, 'X': 2, 'B': 3, 'Y': 1, 'C': 2, 'Z': 3}
>>> l = ['A', 'B', 'C', 'C', 'X', 'Y', 'Z', 'A', 'Z']
>>> split = splitter[l, map.get]
>>> split.items[]
[1, ['A', 'Y', 'A']], [2, ['C', 'C', 'X']], [3, ['B', 'Z', 'Z']]]
Xem thảo luận
Cải thiện bài viết
Lưu bài viết
Xem thảo luận
Cải thiện bài viết
Lưu bài viết
Việc chia tách danh sách là tiện ích khá phổ biến hiện nay và có thể có nhiều ứng dụng và trường hợp sử dụng giống nhau. Cùng với những điều này luôn luôn đến các biến thể. Một biến thể như vậy có thể được chia danh sách theo giá trị cụ thể. Hãy để thảo luận về một cách nhất định trong đó phân chia danh sách có thể được thực hiện.
Phương pháp: Sử dụng danh sách hiểu +
3>>> l = [1, 2, 3, 4, 2, 3, 4, 5, 6, 4, 3, 2, 3]
>>> split = splitter[l, lambda x: x % 2 == 0] # partition l into odds and evens
>>> split.items[]
>>> [[False, [1, 3, 3, 5, 3, 3]], [True, [2, 4, 2, 4, 6, 4, 2]]]
Vấn đề này có thể được giải quyết trong hai phần, trong phần đầu tiên, chúng tôi nhận được danh sách chỉ mục bằng cách phân chia phải được thực hiện bằng cách sử dụng hàm liệt kê. Và sau đó chúng ta có thể tham gia các giá trị theo các chỉ số bằng cách sử dụng ZIP và Danh sách cắt.
Các
>>> map = {'A': 1, 'X': 2, 'B': 3, 'Y': 1, 'C': 2, 'Z': 3}
>>> l = ['A', 'B', 'C', 'C', 'X', 'Y', 'Z', 'A', 'Z']
>>> split = splitter[l, map.get]
>>> split.items[]
[1, ['A', 'Y', 'A']], [2, ['C', 'C', 'X']], [3, ['B', 'Z', 'Z']]]
5>>> map = {'A': 1, 'X': 2, 'B': 3, 'Y': 1, 'C': 2, 'Z': 3}
>>> l = ['A', 'B', 'C', 'C', 'X', 'Y', 'Z', 'A', 'Z']
>>> split = splitter[l, map.get]
>>> split.items[]
[1, ['A', 'Y', 'A']], [2, ['C', 'C', 'X']], [3, ['B', 'Z', 'Z']]]
6>>> map = {'A': 1, 'X': 2, 'B': 3, 'Y': 1, 'C': 2, 'Z': 3}
>>> l = ['A', 'B', 'C', 'C', 'X', 'Y', 'Z', 'A', 'Z']
>>> split = splitter[l, map.get]
>>> split.items[]
[1, ['A', 'Y', 'A']], [2, ['C', 'C', 'X']], [3, ['B', 'Z', 'Z']]]
7 >>> map = {'A': 1, 'X': 2, 'B': 3, 'Y': 1, 'C': 2, 'Z': 3}
>>> l = ['A', 'B', 'C', 'C', 'X', 'Y', 'Z', 'A', 'Z']
>>> split = splitter[l, map.get]
>>> split.items[]
[1, ['A', 'Y', 'A']], [2, ['C', 'C', 'X']], [3, ['B', 'Z', 'Z']]]
8 >>> map = {'A': 1, 'X': 2, 'B': 3, 'Y': 1, 'C': 2, 'Z': 3}
>>> l = ['A', 'B', 'C', 'C', 'X', 'Y', 'Z', 'A', 'Z']
>>> split = splitter[l, map.get]
>>> split.items[]
[1, ['A', 'Y', 'A']], [2, ['C', 'C', 'X']], [3, ['B', 'Z', 'Z']]]
9The original list : [1, 4, 5, 6, 4, 5, 6, 5, 4] The list after splitting by a value : [[1, 4, 5], [6, 4, 5], [6, 5], [4]]0
The original list : [1, 4, 5, 6, 4, 5, 6, 5, 4] The list after splitting by a value : [[1, 4, 5], [6, 4, 5], [6, 5], [4]]1
>>> l = [1, 2, 3, 4, 2, 3, 4, 5, 6, 4, 3, 2, 3]
>>> split = splitter[l, lambda x: x % 2 == 0] # partition l into odds and evens
>>> split.items[]
>>> [[False, [1, 3, 3, 5, 3, 3]], [True, [2, 4, 2, 4, 6, 4, 2]]]
5 The original list : [1, 4, 5, 6, 4, 5, 6, 5, 4] The list after splitting by a value : [[1, 4, 5], [6, 4, 5], [6, 5], [4]]3
The original list : [1, 4, 5, 6, 4, 5, 6, 5, 4] The list after splitting by a value : [[1, 4, 5], [6, 4, 5], [6, 5], [4]]4
The original list : [1, 4, 5, 6, 4, 5, 6, 5, 4] The list after splitting by a value : [[1, 4, 5], [6, 4, 5], [6, 5], [4]]5
>>> l = [1, 2, 3, 4, 2, 3, 4, 5, 6, 4, 3, 2, 3]
>>> split = splitter[l, lambda x: x % 2 == 0] # partition l into odds and evens
>>> split.items[]
>>> [[False, [1, 3, 3, 5, 3, 3]], [True, [2, 4, 2, 4, 6, 4, 2]]]
5 The original list : [1, 4, 5, 6, 4, 5, 6, 5, 4] The list after splitting by a value : [[1, 4, 5], [6, 4, 5], [6, 5], [4]]7
>>> map = {'A': 1, 'X': 2, 'B': 3, 'Y': 1, 'C': 2, 'Z': 3}
>>> l = ['A', 'B', 'C', 'C', 'X', 'Y', 'Z', 'A', 'Z']
>>> split = splitter[l, map.get]
>>> split.items[]
[1, ['A', 'Y', 'A']], [2, ['C', 'C', 'X']], [3, ['B', 'Z', 'Z']]]
8 >>> l = [1, 2, 3, 4, 2, 3, 4, 5, 6, 4, 3, 2, 3]
>>> split = splitter[l, lambda x: x % 2 == 0] # partition l into odds and evens
>>> split.items[]
>>> [[False, [1, 3, 3, 5, 3, 3]], [True, [2, 4, 2, 4, 6, 4, 2]]]
7 0Copied!
my_list = ['a-1', 'b-2', 'c-3', 'd-4'] # ✅ split each element in list and keep first part result_1 = [item.split['-', 1][0] for item in my_list] print[result_1] # 👉️ ['a', 'b', 'c', 'd'] # ✅ split each element in list into nested lists result_2 = [item.split['-'] for item in my_list] print[result_2] # 👉 [['a', '1'], ['b', '2'], ['c', '3'], ['d', '4']] # ✅ split each element in list and flatten list result_3 = [item.split['-'] for item in my_list] result_3_flat = [item for l in result_3 for item in l] print[result_3_flat] # 👉️ ['a', '1', 'b', '2', 'c', '3', 'd', '4'] # ✅ split specific element in list result_4 = my_list[0].split['-'] print[result_4] # 👉️ ['a', '1']
1Copied!
my_list = ['a-1', 'b-2', 'c-3', 'd-4'] # ✅ split each element in list and keep first part result_1 = [item.split['-', 1][0] for item in my_list] print[result_1] # 👉️ ['a', 'b', 'c', 'd'] # ✅ split each element in list into nested lists result_2 = [item.split['-'] for item in my_list] print[result_2] # 👉 [['a', '1'], ['b', '2'], ['c', '3'], ['d', '4']] # ✅ split each element in list and flatten list result_3 = [item.split['-'] for item in my_list] result_3_flat = [item for l in result_3 for item in l] print[result_3_flat] # 👉️ ['a', '1', 'b', '2', 'c', '3', 'd', '4'] # ✅ split specific element in list result_4 = my_list[0].split['-'] print[result_4] # 👉️ ['a', '1']
2Copied!
my_list = ['a-1', 'b-2', 'c-3', 'd-4'] # ✅ split each element in list and keep first part result_1 = [item.split['-', 1][0] for item in my_list] print[result_1] # 👉️ ['a', 'b', 'c', 'd'] # ✅ split each element in list into nested lists result_2 = [item.split['-'] for item in my_list] print[result_2] # 👉 [['a', '1'], ['b', '2'], ['c', '3'], ['d', '4']] # ✅ split each element in list and flatten list result_3 = [item.split['-'] for item in my_list] result_3_flat = [item for l in result_3 for item in l] print[result_3_flat] # 👉️ ['a', '1', 'b', '2', 'c', '3', 'd', '4'] # ✅ split specific element in list result_4 = my_list[0].split['-'] print[result_4] # 👉️ ['a', '1']
3Copied!
my_list = ['a-1', 'b-2', 'c-3', 'd-4'] # ✅ split each element in list and keep first part result_1 = [item.split['-', 1][0] for item in my_list] print[result_1] # 👉️ ['a', 'b', 'c', 'd'] # ✅ split each element in list into nested lists result_2 = [item.split['-'] for item in my_list] print[result_2] # 👉 [['a', '1'], ['b', '2'], ['c', '3'], ['d', '4']] # ✅ split each element in list and flatten list result_3 = [item.split['-'] for item in my_list] result_3_flat = [item for l in result_3 for item in l] print[result_3_flat] # 👉️ ['a', '1', 'b', '2', 'c', '3', 'd', '4'] # ✅ split specific element in list result_4 = my_list[0].split['-'] print[result_4] # 👉️ ['a', '1']
4Copied!
my_list = ['a-1', 'b-2', 'c-3', 'd-4'] # ✅ split each element in list and keep first part result_1 = [item.split['-', 1][0] for item in my_list] print[result_1] # 👉️ ['a', 'b', 'c', 'd'] # ✅ split each element in list into nested lists result_2 = [item.split['-'] for item in my_list] print[result_2] # 👉 [['a', '1'], ['b', '2'], ['c', '3'], ['d', '4']] # ✅ split each element in list and flatten list result_3 = [item.split['-'] for item in my_list] result_3_flat = [item for l in result_3 for item in l] print[result_3_flat] # 👉️ ['a', '1', 'b', '2', 'c', '3', 'd', '4'] # ✅ split specific element in list result_4 = my_list[0].split['-'] print[result_4] # 👉️ ['a', '1']
555556Copied!
my_list = ['a-1', 'b-2', 'c-3', 'd-4'] # ✅ split each element in list and keep first part result_1 = [item.split['-', 1][0] for item in my_list] print[result_1] # 👉️ ['a', 'b', 'c', 'd'] # ✅ split each element in list into nested lists result_2 = [item.split['-'] for item in my_list] print[result_2] # 👉 [['a', '1'], ['b', '2'], ['c', '3'], ['d', '4']] # ✅ split each element in list and flatten list result_3 = [item.split['-'] for item in my_list] result_3_flat = [item for l in result_3 for item in l] print[result_3_flat] # 👉️ ['a', '1', 'b', '2', 'c', '3', 'd', '4'] # ✅ split specific element in list result_4 = my_list[0].split['-'] print[result_4] # 👉️ ['a', '1']
7Copied!
my_list = ['a-1', 'b-2', 'c-3', 'd-4'] # ✅ split each element in list and keep first part result_1 = [item.split['-', 1][0] for item in my_list] print[result_1] # 👉️ ['a', 'b', 'c', 'd'] # ✅ split each element in list into nested lists result_2 = [item.split['-'] for item in my_list] print[result_2] # 👉 [['a', '1'], ['b', '2'], ['c', '3'], ['d', '4']] # ✅ split each element in list and flatten list result_3 = [item.split['-'] for item in my_list] result_3_flat = [item for l in result_3 for item in l] print[result_3_flat] # 👉️ ['a', '1', 'b', '2', 'c', '3', 'd', '4'] # ✅ split specific element in list result_4 = my_list[0].split['-'] print[result_4] # 👉️ ['a', '1']
>>> l = [1, 2, 3, 4, 2, 3, 4, 5, 6, 4, 3, 2, 3]
>>> split = splitter[l, lambda x: x % 2 == 0] # partition l into odds and evens
>>> split.items[]
>>> [[False, [1, 3, 3, 5, 3, 3]], [True, [2, 4, 2, 4, 6, 4, 2]]]
5__152Copied!
my_list = ['a-1', 'b-2', 'c-3', 'd-4'] # ✅ split each element in list and keep first part result_1 = [item.split['-', 1][0] for item in my_list] print[result_1] # 👉️ ['a', 'b', 'c', 'd']
>>> l = [1, 2, 3, 4, 2, 3, 4, 5, 6, 4, 3, 2, 3]
>>> split = splitter[l, lambda x: x % 2 == 0] # partition l into odds and evens
>>> split.items[]
>>> [[False, [1, 3, 3, 5, 3, 3]], [True, [2, 4, 2, 4, 6, 4, 2]]]
5 4Copied!
my_list = ['a-1', 'b-2', 'c-3', 'd-4'] # ✅ split each element in list and keep first part result_1 = [item.split['-', 1][0] for item in my_list] print[result_1] # 👉️ ['a', 'b', 'c', 'd']
0Copied!
my_list = ['a-1', 'b-2', 'c-3', 'd-4'] # ✅ split each element in list and keep first part result_1 = [item.split['-', 1][0] for item in my_list] print[result_1] # 👉️ ['a', 'b', 'c', 'd'] # ✅ split each element in list into nested lists result_2 = [item.split['-'] for item in my_list] print[result_2] # 👉 [['a', '1'], ['b', '2'], ['c', '3'], ['d', '4']] # ✅ split each element in list and flatten list result_3 = [item.split['-'] for item in my_list] result_3_flat = [item for l in result_3 for item in l] print[result_3_flat] # 👉️ ['a', '1', 'b', '2', 'c', '3', 'd', '4'] # ✅ split specific element in list result_4 = my_list[0].split['-'] print[result_4] # 👉️ ['a', '1']
6Copied!
my_list = ['a-1', 'b-2', 'c-3', 'd-4'] # ✅ split each element in list and keep first part result_1 = [item.split['-', 1][0] for item in my_list] print[result_1] # 👉️ ['a', 'b', 'c', 'd']
2Copied!
my_list = ['a-1', 'b-2', 'c-3', 'd-4'] # ✅ split each element in list and keep first part result_1 = [item.split['-', 1][0] for item in my_list] print[result_1] # 👉️ ['a', 'b', 'c', 'd'] # ✅ split each element in list into nested lists result_2 = [item.split['-'] for item in my_list] print[result_2] # 👉 [['a', '1'], ['b', '2'], ['c', '3'], ['d', '4']] # ✅ split each element in list and flatten list result_3 = [item.split['-'] for item in my_list] result_3_flat = [item for l in result_3 for item in l] print[result_3_flat] # 👉️ ['a', '1', 'b', '2', 'c', '3', 'd', '4'] # ✅ split specific element in list result_4 = my_list[0].split['-'] print[result_4] # 👉️ ['a', '1']
Các
8Copied!
my_list = ['a-1', 'b-2', 'c-3', 'd-4'] # ✅ split each element in list and keep first part result_1 = [item.split['-', 1][0] for item in my_list] print[result_1] # 👉️ ['a', 'b', 'c', 'd']
77__56Copied!
# 👇️ ['a', 'b.c.d'] print['a.b.c.d'.split['.', 1]] # 👈️ with maxsplit set to 1 # 👇️ ['a', 'b', 'c', 'd'] print['a.b.c.d'.split['.']] # 👈️ without maxsplit
>>> map = {'A': 1, 'X': 2, 'B': 3, 'Y': 1, 'C': 2, 'Z': 3}
>>> l = ['A', 'B', 'C', 'C', 'X', 'Y', 'Z', 'A', 'Z']
>>> split = splitter[l, map.get]
>>> split.items[]
[1, ['A', 'Y', 'A']], [2, ['C', 'C', 'X']], [3, ['B', 'Z', 'Z']]]
5>>> map = {'A': 1, 'X': 2, 'B': 3, 'Y': 1, 'C': 2, 'Z': 3}
>>> l = ['A', 'B', 'C', 'C', 'X', 'Y', 'Z', 'A', 'Z']
>>> split = splitter[l, map.get]
>>> split.items[]
[1, ['A', 'Y', 'A']], [2, ['C', 'C', 'X']], [3, ['B', 'Z', 'Z']]]
69Copied!
my_list = ['a-1', 'b-2', 'c-3', 'd-4'] # ✅ split each element in list into nested lists result_2 = [item.split['-'] for item in my_list] print[result_2] # 👉 [['a', '1'], ['b', '2'], ['c', '3'], ['d', '4']]
>>> map = {'A': 1, 'X': 2, 'B': 3, 'Y': 1, 'C': 2, 'Z': 3}
>>> l = ['A', 'B', 'C', 'C', 'X', 'Y', 'Z', 'A', 'Z']
>>> split = splitter[l, map.get]
>>> split.items[]
[1, ['A', 'Y', 'A']], [2, ['C', 'C', 'X']], [3, ['B', 'Z', 'Z']]]
8 >>> map = {'A': 1, 'X': 2, 'B': 3, 'Y': 1, 'C': 2, 'Z': 3}
>>> l = ['A', 'B', 'C', 'C', 'X', 'Y', 'Z', 'A', 'Z']
>>> split = splitter[l, map.get]
>>> split.items[]
[1, ['A', 'Y', 'A']], [2, ['C', 'C', 'X']], [3, ['B', 'Z', 'Z']]]
92Copied!
my_list = ['a-1', 'b-2', 'c-3', 'd-4'] # ✅ split each element in list and flatten list result_3 = [item.split['-'] for item in my_list] result_3_flat = [item for l in result_3 for item in l] print[result_3_flat] # 👉️ ['a', '1', 'b', '2', 'c', '3', 'd', '4']
Đầu ra:
The original list : [1, 4, 5, 6, 4, 5, 6, 5, 4] The list after splitting by a value : [[1, 4, 5], [6, 4, 5], [6, 5], [4]]
Chia các yếu tố của một danh sách trong Python #
Để phân chia các yếu tố của một danh sách trong Python:
- Sử dụng danh sách hiểu để lặp lại trong danh sách.
- Trên mỗi lần lặp, hãy gọi phương thức
3 để phân chia từng chuỗi.Copied!
my_list = ['a-1', 'b-2', 'c-3', 'd-4'] # ✅ split each element in list and flatten list result_3 = [item.split['-'] for item in my_list] result_3_flat = [item for l in result_3 for item in l] print[result_3_flat] # 👉️ ['a', '1', 'b', '2', 'c', '3', 'd', '4']
- Trả về một phần của mỗi chuỗi bạn muốn giữ.
Copied!
my_list = ['a-1', 'b-2', 'c-3', 'd-4'] # ✅ split each element in list and keep first part result_1 = [item.split['-', 1][0] for item in my_list] print[result_1] # 👉️ ['a', 'b', 'c', 'd'] # ✅ split each element in list into nested lists result_2 = [item.split['-'] for item in my_list] print[result_2] # 👉 [['a', '1'], ['b', '2'], ['c', '3'], ['d', '4']] # ✅ split each element in list and flatten list result_3 = [item.split['-'] for item in my_list] result_3_flat = [item for l in result_3 for item in l] print[result_3_flat] # 👉️ ['a', '1', 'b', '2', 'c', '3', 'd', '4'] # ✅ split specific element in list result_4 = my_list[0].split['-'] print[result_4] # 👉️ ['a', '1']
Ví dụ đầu tiên cho thấy cách phân chia từng phần tử trong danh sách và chỉ giữ phần đầu tiên.
Copied!
my_list = ['a-1', 'b-2', 'c-3', 'd-4'] # ✅ split each element in list and keep first part result_1 = [item.split['-', 1][0] for item in my_list] print[result_1] # 👉️ ['a', 'b', 'c', 'd']
Chúng tôi đã sử dụng một danh sách hiểu để lặp lại trong danh sách.
Danh sách các hệ thống được sử dụng để thực hiện một số hoạt động cho mọi yếu tố hoặc chọn một tập hợp con của các phần tử đáp ứng một điều kiện.
Phương thức str.split [] chia chuỗi thành một danh sách các chuỗi con bằng cách sử dụng dấu phân cách.
Phương thức lấy 2 tham số sau:
máy tách biệt | Chia chuỗi thành chuỗi con trên mỗi lần xuất hiện |
MaxSplit | Nhiều nhất 4 chia tách được thực hiện [tùy chọn] |
Chúng tôi đã vượt qua
>>> l = [1, 2, 3, 4, 2, 3, 4, 5, 6, 4, 3, 2, 3]
>>> split = splitter[l, lambda x: x % 2 == 0] # partition l into odds and evens
>>> split.items[]
>>> [[False, [1, 3, 3, 5, 3, 3]], [True, [2, 4, 2, 4, 6, 4, 2]]]
7 cho đối số 4 để chỉ chia chuỗi một lần và nhận mục đầu tiên.Copied!
my_list = ['a-1', 'b-2', 'c-3', 'd-4'] # ✅ split each element in list and flatten list result_3 = [item.split['-'] for item in my_list] result_3_flat = [item for l in result_3 for item in l] print[result_3_flat] # 👉️ ['a', '1', 'b', '2', 'c', '3', 'd', '4']
Nếu bạn cần chia chuỗi trên mỗi lần xuất hiện của dấu phân cách, hãy xóa đối số thứ hai trong cuộc gọi đến
7.Copied!
my_list = ['a-1', 'b-2', 'c-3', 'd-4'] # ✅ split each element in list and flatten list result_3 = [item.split['-'] for item in my_list] result_3_flat = [item for l in result_3 for item in l] print[result_3_flat] # 👉️ ['a', '1', 'b', '2', 'c', '3', 'd', '4']
Copied!
# 👇️ ['a', 'b.c.d'] print['a.b.c.d'.split['.', 1]] # 👈️ with maxsplit set to 1 # 👇️ ['a', 'b', 'c', 'd'] print['a.b.c.d'.split['.']] # 👈️ without maxsplit
Ví dụ thứ hai chia từng phần tử trong danh sách thành danh sách lồng nhau.
Copied!
my_list = ['a-1', 'b-2', 'c-3', 'd-4'] # ✅ split each element in list into nested lists result_2 = [item.split['-'] for item in my_list] print[result_2] # 👉 [['a', '1'], ['b', '2'], ['c', '3'], ['d', '4']]
Bạn cũng có thể làm phẳng danh sách sau khi bạn chia từng chuỗi.
Copied!
my_list = ['a-1', 'b-2', 'c-3', 'd-4'] # ✅ split each element in list and flatten list result_3 = [item.split['-'] for item in my_list] result_3_flat = [item for l in result_3 for item in l] print[result_3_flat] # 👉️ ['a', '1', 'b', '2', 'c', '3', 'd', '4']
Biến
8 là một danh sách hai chiều, vì vậy chúng tôi đã phải sử dụng một danh sách hiểu khác để làm phẳng nó.Copied!
my_list = ['a-1', 'b-2', 'c-3', 'd-4'] # ✅ split each element in list and flatten list result_3 = [item.split['-'] for item in my_list] result_3_flat = [item for l in result_3 for item in l] print[result_3_flat] # 👉️ ['a', '1', 'b', '2', 'c', '3', 'd', '4']
Bạn có thể đạt được kết quả tương tự bằng cách sử dụng vòng lặp
0.Copied!
my_list = ['a-1', 'b-2', 'c-3', 'd-4'] # ✅ split each element in list and keep first part result_1 = [item.split['-', 1][0] for item in my_list] print[result_1] # 👉️ ['a', 'b', 'c', 'd'] # ✅ split each element in list into nested lists result_2 = [item.split['-'] for item in my_list] print[result_2] # 👉 [['a', '1'], ['b', '2'], ['c', '3'], ['d', '4']] # ✅ split each element in list and flatten list result_3 = [item.split['-'] for item in my_list] result_3_flat = [item for l in result_3 for item in l] print[result_3_flat] # 👉️ ['a', '1', 'b', '2', 'c', '3', 'd', '4'] # ✅ split specific element in list result_4 = my_list[0].split['-'] print[result_4] # 👉️ ['a', '1']
>>> l = [1, 2, 3, 4, 2, 3, 4, 5, 6, 4, 3, 2, 3]
>>> split = splitter[l, lambda x: x % 2 == 0] # partition l into odds and evens
>>> split.items[]
>>> [[False, [1, 3, 3, 5, 3, 3]], [True, [2, 4, 2, 4, 6, 4, 2]]]
0Chúng tôi đã sử dụng một vòng lặp
0 lồng nhau để làm phẳng danh sách các danh sách.Copied!
my_list = ['a-1', 'b-2', 'c-3', 'd-4'] # ✅ split each element in list and keep first part result_1 = [item.split['-', 1][0] for item in my_list] print[result_1] # 👉️ ['a', 'b', 'c', 'd'] # ✅ split each element in list into nested lists result_2 = [item.split['-'] for item in my_list] print[result_2] # 👉 [['a', '1'], ['b', '2'], ['c', '3'], ['d', '4']] # ✅ split each element in list and flatten list result_3 = [item.split['-'] for item in my_list] result_3_flat = [item for l in result_3 for item in l] print[result_3_flat] # 👉️ ['a', '1', 'b', '2', 'c', '3', 'd', '4'] # ✅ split specific element in list result_4 = my_list[0].split['-'] print[result_4] # 👉️ ['a', '1']
Vòng lặp
0 bên ngoài được sử dụng để lặp lại trong danh sách hai chiều.Copied!
my_list = ['a-1', 'b-2', 'c-3', 'd-4'] # ✅ split each element in list and keep first part result_1 = [item.split['-', 1][0] for item in my_list] print[result_1] # 👉️ ['a', 'b', 'c', 'd'] # ✅ split each element in list into nested lists result_2 = [item.split['-'] for item in my_list] print[result_2] # 👉 [['a', '1'], ['b', '2'], ['c', '3'], ['d', '4']] # ✅ split each element in list and flatten list result_3 = [item.split['-'] for item in my_list] result_3_flat = [item for l in result_3 for item in l] print[result_3_flat] # 👉️ ['a', '1', 'b', '2', 'c', '3', 'd', '4'] # ✅ split specific element in list result_4 = my_list[0].split['-'] print[result_4] # 👉️ ['a', '1']
Để có được quyền truy cập vào các mục trong danh sách lồng nhau, chúng tôi cần một vòng lặp Copied!
0 lồng nhau.my_list = ['a-1', 'b-2', 'c-3', 'd-4']
# ✅ split each element in list and keep first part
result_1 = [item.split['-', 1][0] for item in my_list]
print[result_1] # 👉️ ['a', 'b', 'c', 'd']
# ✅ split each element in list into nested lists
result_2 = [item.split['-'] for item in my_list]
print[result_2] # 👉 [['a', '1'], ['b', '2'], ['c', '3'], ['d', '4']]
# ✅ split each element in list and flatten list
result_3 = [item.split['-'] for item in my_list]
result_3_flat = [item for l in result_3 for item in l]
print[result_3_flat] # 👉️ ['a', '1', 'b', '2', 'c', '3', 'd', '4']
# ✅ split specific element in list
result_4 = my_list[0].split['-']
print[result_4] # 👉️ ['a', '1']
Trên mỗi lần lặp, chúng tôi nối từng mục danh sách vào một danh sách trống.
Nếu bạn cần chia một mục danh sách, hãy truy cập danh sách theo chỉ mục cụ thể trước khi gọi phương thức
3.Copied!
my_list = ['a-1', 'b-2', 'c-3', 'd-4'] # ✅ split each element in list and flatten list result_3 = [item.split['-'] for item in my_list] result_3_flat = [item for l in result_3 for item in l] print[result_3_flat] # 👉️ ['a', '1', 'b', '2', 'c', '3', 'd', '4']
>>> l = [1, 2, 3, 4, 2, 3, 4, 5, 6, 4, 3, 2, 3]
>>> split = splitter[l, lambda x: x % 2 == 0] # partition l into odds and evens
>>> split.items[]
>>> [[False, [1, 3, 3, 5, 3, 3]], [True, [2, 4, 2, 4, 6, 4, 2]]]
1Các chỉ mục dựa trên không trong Python, vì vậy mục đầu tiên trong danh sách có chỉ mục là
1, chỉ số thứ hai làCopied!
# 👇️ ['a', 'b.c.d'] print['a.b.c.d'.split['.', 1]] # 👈️ with maxsplit set to 1 # 👇️ ['a', 'b', 'c', 'd'] print['a.b.c.d'.split['.']] # 👈️ without maxsplit
>>> l = [1, 2, 3, 4, 2, 3, 4, 5, 6, 4, 3, 2, 3]
>>> split = splitter[l, lambda x: x % 2 == 0] # partition l into odds and evens
>>> split.items[]
>>> [[False, [1, 3, 3, 5, 3, 3]], [True, [2, 4, 2, 4, 6, 4, 2]]]
7, v.v.