Hướng dẫn python list split by value - danh sách python được chia theo giá trị

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

  • Đọc
  • Bàn luận
  • 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 +

    >>> 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])]
    
    3

    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'])]
    
    9
    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]]
    
    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

    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']
    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']
    1

    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']
    2

    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']
    3

    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']
    4

    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']
    555556

    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']
    7
    >>> 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__15

    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']
    2
    >>> 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

    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']
    4

    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']
    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']
    6

    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']
    2

    Các

    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']
    8

    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
    77__56

    >>> 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

    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']]
    9
    >>> 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'])]
    
    9

    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']
    2

    Đầ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:

    1. Sử dụng danh sách hiểu để lặp lại trong danh sách.
    2. Trên mỗi lần lặp, hãy gọi phương thức

      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']
      3 để phân chia từng chuỗi.
    3. 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:

    TênSự mô tả
    máy tách biệtChia chuỗi thành chuỗi con trên mỗi lần xuất hiện
    MaxSplitNhiều nhất

    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']
    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ố

    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']
    4 để chỉ chia chuỗi một lần và nhận mục đầu tiên.

    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

    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']
    7.

    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

    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']
    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ó.

    Bạn có thể đạt được kết quả tương tự bằng cách sử dụng vòng lặp

    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']
    0.

    >>> 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])]
    
    0

    Chúng tôi đã sử dụng một vòng lặp

    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']
    0 lồng nhau để làm phẳng danh sách các danh sách.

    Vòng lặp

    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']
    0 bên ngoài được sử dụng để lặp lại trong danh sách hai chiều.

    Để 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!

    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']
    0 lồng nhau.

    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

    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']
    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])]
    
    1

    Cá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à

    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
    1, chỉ số thứ hai là
    >>> 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.

    Làm thế nào để bạn chia một danh sách theo giá trị trong Python?

    Để phân chia các phần tử của danh sách trong Python: Sử dụng danh sách hiểu để lặp qua danh sách. Mỗi lần lặp, hãy gọi phương thức Split () để chia mỗi chuỗi.Trả về một phần của mỗi chuỗi bạn muốn giữ.Use a list comprehension to iterate over the list. On each iteration, call the split() method to split each string. Return the part of each string you want to keep.

    Làm thế nào để bạn chia một danh sách thành hai phần bằng nhau trong Python?

    Điều này có thể được thực hiện bằng các bước sau:..
    Nhận độ dài của một danh sách bằng hàm Len () ..
    Nếu độ dài của các bộ phận không được đưa ra, thì hãy chia độ dài của danh sách cho 2 bằng toán tử sàn để lấy chỉ số giữa của danh sách ..
    Cắt danh sách thành hai nửa bằng cách sử dụng [: middle_index] và [middle_index:].

    Làm thế nào để bạn chia một danh sách thành dấu phân cách trong Python?

    Chia theo DELIMITER: split () Sử dụng phương thức chia () để chia theo dấu phân cách.Nếu đối số bị bỏ qua, nó sẽ được chia bằng khoảng trắng, chẳng hạn như khoảng trắng, newlines \ n và tab \ t.Khoảng trắng liên tiếp được xử lý cùng nhau.Một danh sách các từ được trả về.Use split() method to split by delimiter. If the argument is omitted, it will be split by whitespace, such as spaces, newlines \n , and tabs \t . Consecutive whitespace is processed together. A list of the words is returned.

    Chia () có trả lại một danh sách không?

    Hàm chia () trả về các chuỗi dưới dạng danh sách.returns the strings as a list.