πŸ” Как Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ список Π½Π° списки Π² Python? 🐍

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ язык программирования Python, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ список Π½Π° списки, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ split(). Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

# Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ список
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

# РаздСлСниС списка на списки по заданной длинС
chunk_size = 3
divided_list = [my_list[i:i+chunk_size] for i in range(0, len(my_list), chunk_size)]

# Π’Ρ‹Π²ΠΎΠ΄ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… списков
print(divided_list)
   
Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ Π·Π°Π΄Π°Π»ΠΈ исходный список [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] ΠΈ Ρ€Π°Π·Π΄Π΅Π»ΠΈΠ»ΠΈ Π΅Π³ΠΎ Π½Π° списки Π΄Π»ΠΈΠ½ΠΎΠΉ 3. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ список списков: [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10]].

Π”Π΅Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚

Как Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ список Π½Π° списки Π² Python

Когда Ρ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ с ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π½Π° языкС Python, ΠΎΡ‡Π΅Π½ΡŒ часто Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΎΡΡ‚ΡŒ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ список Π½Π° нСсколько Π±ΠΎΠ»Π΅Π΅ ΠΌΠ°Π»Π΅Π½ΡŒΠΊΠΈΡ… списков. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠΎ Π³Ρ€ΡƒΠΏΠΏΠ°ΠΌ ΠΈΠ»ΠΈ сСгмСнтам. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрим Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ способы раздСлСния списка Π½Π° списки Π² Python.

ΠœΠ΅Ρ‚ΠΎΠ΄ 1: ИспользованиС срСзов (Slicing)

Один ΠΈΠ· самых простых способов раздСлСния списка Π½Π° списки - это использованиС срСзов (slicing) Π² Python. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ срСзов ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ части списка ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈΠ· Π½ΠΈΡ… Π½ΠΎΠ²Ρ‹Π΅ списки. Π”Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
chunk_size = 3

result = [numbers[i:i+chunk_size] for i in range(0, len(numbers), chunk_size)]

print(result)

Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ ΠΈΠΌΠ΅Π΅ΠΌ список чисСл ΠΎΡ‚ 1 Π΄ΠΎ 10 ΠΈ Ρ…ΠΎΡ‚ΠΈΠΌ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π½Π° Π³Ρ€ΡƒΠΏΠΏΡ‹ ΠΏΠΎ 3 числа. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ срСзов ΠΌΡ‹ Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ части списка Π΄Π»ΠΈΠ½ΠΎΠΉ chunk_size (Π² Π΄Π°Π½Π½ΠΎΠΌ случаС 3) ΠΈ создаСм Π½ΠΎΠ²Ρ‹Π΅ списки.

Π’Ρ‹Π²ΠΎΠ΄:

[[1, 2, 3], [4, 5, 6], [7, 8, 9], [10]]

Как Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· Π²Ρ‹Π²ΠΎΠ΄Π°, исходный список Π±Ρ‹Π» ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ Π½Π° нСсколько списков Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 3 элСмСнта.

ΠœΠ΅Ρ‚ΠΎΠ΄ 2: ИспользованиС Ρ†ΠΈΠΊΠ»Π°

Π”Ρ€ΡƒΠ³ΠΎΠΉ способ раздСлСния списка Π½Π° списки - это использованиС Ρ†ΠΈΠΊΠ»Π°. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΏΠΎ элСмСнтам списка ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ ΠΈΡ… Π² Π½ΠΎΠ²Ρ‹ΠΉ список Π΄ΠΎ достиТСния ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°. Π”Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
chunk_size = 3

result = []
current_chunk = []

for number in numbers:
    current_chunk.append(number)
    
    if len(current_chunk) == chunk_size:
        result.append(current_chunk)
        current_chunk = []

if current_chunk:
    result.append(current_chunk)

print(result)

Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Ρ†ΠΈΠΊΠ» for для прохоТдСния ΠΏΠΎ элСмСнтам списка. ΠœΡ‹ добавляСм ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт Π² Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ "кусок" (current_chunk) ΠΈ провСряСм Π΅Π³ΠΎ Π΄Π»ΠΈΠ½Ρƒ. Если Π΄Π»ΠΈΠ½Π° Ρ€Π°Π²Π½Π° Π·Π°Π΄Π°Π½Π½ΠΎΠΌΡƒ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρƒ (chunk_size), ΠΌΡ‹ добавляСм Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ "кусок" Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ (result) ΠΈ создаСм Π½ΠΎΠ²Ρ‹ΠΉ "кусок". Если послС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Ρ†ΠΈΠΊΠ»Π° остался нСпустой Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ "кусок", ΠΌΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ добавляСм Π΅Π³ΠΎ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.

Π’Ρ‹Π²ΠΎΠ΄:

[[1, 2, 3], [4, 5, 6], [7, 8, 9], [10]]

Как ΠΈ Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅, исходный список Π±Ρ‹Π» ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ Π½Π° нСсколько списков Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 3 элСмСнта.

ΠœΠ΅Ρ‚ΠΎΠ΄ 3: ИспользованиС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ numpy

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° numpy прСдоставляСт ΠΌΠΎΡ‰Π½Ρ‹Π΅ инструмСнты для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с массивами ΠΈ списками Π² Python. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ numpy.array_split(), Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ список Π½Π° списки с Ρ€Π°Π²Π½Ρ‹ΠΌ числом элСмСнтов. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

import numpy as np

numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
chunk_size = 3

result = np.array_split(numbers, len(numbers) / chunk_size)

print(result)

Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ numpy ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ numpy.array_split() для раздСлСния списка numbers Π½Π° списки с Ρ€Π°Π²Π½Ρ‹ΠΌ числом элСмСнтов (Π² Π΄Π°Π½Π½ΠΎΠΌ случаС 3 элСмСнта).

Π’Ρ‹Π²ΠΎΠ΄:

[array([1, 2, 3]), array([4, 5, 6]), array([7, 8, 9]), array([10])]

Как ΠΈ Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… ΠΌΠ΅Ρ‚ΠΎΠ΄Π°Ρ…, исходный список Π±Ρ‹Π» ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ Π½Π° нСсколько списков Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 3 элСмСнта.

Π’Ρ‹Π²ΠΎΠ΄Ρ‹

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрСли Ρ‚Ρ€ΠΈ способа раздСлСния списка Π½Π° списки Π² Python. ΠœΡ‹ использовали срСзы (slicing), Ρ†ΠΈΠΊΠ»Ρ‹ ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ numpy для создания Π½ΠΎΠ²Ρ‹Ρ… списков Π½Π° основС исходного списка. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· этих ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΈΠΌΠ΅Π΅Ρ‚ свои особСнности ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ситуациях Π² зависимости ΠΎΡ‚ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ вашСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Π’Π°ΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠΈ списка ΠΌΡ‹ создаСм Π½ΠΎΠ²Ρ‹Π΅ списки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΡΡ‹Π»Π°ΡŽΡ‚ΡΡ Π½Π° исходныС элСмСнты. Если Π²Π°ΠΌ трСбуСтся Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ΠΊΠΎΠΏΠΈΠ΅ΠΉ списка, слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ copy() ΠΈΠ»ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ copy для создания нСзависимых ΠΊΠΎΠΏΠΈΠΉ элСмСнтов списка.

НадСюсь, Ρ‡Ρ‚ΠΎ эта ΡΡ‚Π°Ρ‚ΡŒΡ ΠΏΠΎΠΌΠΎΠ³Π»Π° Π²Π°ΠΌ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ список Π½Π° списки Π² Python. Π£Π΄Π°Ρ‡ΠΈ Π² вашСм ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ!

Π’ΠΈΠ΄Π΅ΠΎ ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅

Π Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ списка. Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ Simple. ΠžΠ±ΡƒΡ‡Π°Π΅ΠΌΡΡ python Π½Π° сайтС CheckIO #21

Python с нуля | Бписки Π² Python | ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ списков, сортировка списка, срСзы списков Π² Python

12 Бписки ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π°Π΄ Π½ΠΈΠΌΠΈ Python

ΠŸΠΎΡ…ΠΎΠΆΠΈΠ΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ:

πŸ–ŠοΈ Как Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² ΠŸΠΈΡ‚ΠΎΠ½Π΅ ΠΊΡ€Π°Ρ‚Π½ΠΎ 4? Π£Π»ΡƒΡ‡ΡˆΠ°Π΅ΠΌ Π½Π°Π²Ρ‹ΠΊΠΈ программирования!

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ скалярноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² Python? 🐍

🐍 Как Ρ€Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Ρ‚ΡŒ сон ΠΊ Ρ‡Π΅ΠΌΡƒ снится ΠΏΠΈΡ‚ΠΎΠ½ ΠΆΠ΅Π½Ρ‰ΠΈΠ½Π΅ ΠΈ Ρ‡Ρ‚ΠΎ ΠΎΠ½ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚? πŸŒ™πŸ’­

πŸ” Как Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ список Π½Π° списки Π² Python? 🐍

Как ΠΎΡ‚ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ числа ΠΏΠΎ Π²ΠΎΠ·Ρ€Π°ΡΡ‚Π°Π½ΠΈΡŽ Π² ΠŸΠΈΡ‚ΠΎΠ½Π΅? πŸ”’

πŸš€ Как Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡƒΡŽ строку Python Π½Π° Windows 10 🐍

πŸ”‘ Как Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ наслСдованиС класса Π² Python: ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ совСты ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹