Kurs
Python listeleri, sıralı öğeleri saklamak için kullanılan dinamik, değiştirilebilir dizi veri tipleridir. Listeleri bölmek, verileri verimli bir şekilde işlemek ve analiz etmek için Python'da yaygın bir görevdir.
Beceri setinizi keskinleştirmek için Data Analyst with Python kariyer yolunu takip ederek veri analizi hakkında daha fazla bilgi edinebilirsiniz; bu yol, pratik örnekler ve en iyi uygulamalarla birlikte Python'da listeleri bölmenin çeşitli yöntemlerine derinlemesine iner.
Bu tekniklerde ustalaşmak kodlama becerilerinizi geliştirecek, betiklerinizi daha verimli ve bakımı kolay hale getirecektir. Hadi başlayalım.
Hızlı Cevap: Python'da Liste Nasıl Bölünür
-
Python'da bir listeyi bölmenin en basit yolu
:operatörüyle dilimlemedir. Örneğin, bir listeyi şu şekilde bölebiliriz:split_list = my_list[:5]; bu, listeyi beşinci indiste böler. -
Bu makalenin geri kalanında, liste üreteçleri,
itertools,numpyve daha fazlasını içeren diğer bölme yöntemlerini inceleyeceğiz. Her yöntemin farklı avantajları vardır ve farklı kullanım senaryoları için uygundur; birazdan göreceğiz.
En yaygın yöntem: dilimlemeyle liste bölme
Python'da belirli bir indiste listeyi bölmek muhtemelen en yaygın tekniktir. Dilimleme yöntemi, Python listesinin belirtilen indekste alt listelere ayrılmasını sağlar. Aşağıda Python'da dilimlemenin nasıl uygulanacağına dair adım adım bir rehber bulunmaktadır.
- Listeyi Tanımlayın: Diyelim ki elinizde
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]listesi var ve bunu belirli birnindeksinde bölmek istiyorsunuz. - Bölme İndeksini Belirleyin: Listeyi hangi
nindeksinde dilimlemek istediğinizi belirtin. - İlk Dilimi Oluşturun: Aşağıdaki kodda, listenin başından
nindeksine kadar (n dahil değil) olan elemanları içerenfirst_sliceoluşturun. - İkinci Dilimi Oluşturun:
second_slicedeğişkenininindeksinden listenin sonuna kadar olan tüm elemanları içerecek şekilde tanımlayın.
# Define a list of integers from 1 to 10
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# Index where the list will be split
n = 4
# Slice the list from the beginning to the nth index (not inclusive)
first_slice = my_list[:n]
# Slice the list from the nth index to the end
second_slice = my_list[n:]
# Print the first slice of the list
print("First slice:", first_slice)
# Print the second slice of the list
print("Second slice:", second_slice)
# Expected output:
# First slice: [1, 2, 3, 4]
# Second slice: [5, 6, 7, 8, 9, 10]
Python'da Liste Bölmeyi Anlama
Python'da liste dilimleme, ana listeden bir alt liste ya da alt listeler çıkarmayı içerir. Bir listeyi bölmek istediğinizde, doğru alt listeyi elde etmek için dilimleme sözdizimini iyi anlamanız gerekir. Dilimleme sözdizimi slice[start:stop:step] şeklindedir.
- Start, dilimlemenin başladığı indeksi belirtir.
- Stop, dilimlemenin bittiği indeksi belirtir.
- Step, dilimleme sırasındaki aralığı belirtir (varsayılan 1).
# Define a list of integers from 1 to 10
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# Slice the list from index 2 to 7 (index 2 inclusive, index 7 exclusive)
# This will include elements at index 2, 3, 4, 5, and 6
sublist = my_list[2:7]
# Print the sliced sublist
print(sublist)
# Expected output: [3, 4, 5, 6, 7]
Yukarıdaki koda göre, alt liste 7. indeksi içermediği için dilimleme 2. indeksten 6. indekse kadardır.
Kod okunabilirliği ve verimliliği açısından Python'da liste bölmenin faydaları şunlardır:
- Veri Yönetimini Basitleştirme: Verileri yönetilebilir parçalara ayırarak veri bilimciler, makine öğreniminde eğitim ve test verilerini kolayca ayırabilir.
- Modülerliği Artırma: Belirli alt listelerle çalışan fonksiyonlar yazmak kodunuzun modülerliğini artırır.
- Performansı Optimize Etme: Küçük liste parçaları kullanmak, tüm listelere kıyasla daha hızlı işleme sağlar.
- Bellek Verimliliğini Artırma: Yöntem, altta yatan verileri kopyalamadan parçalar oluşturur; bu da bellek açısından verimlidir.
Python'da Listeleri Bölmenin Farklı Teknikleri
Python'da bir listeyi bölmenin farklı yöntemleri vardır. Aşağıda bir veri uzmanının uygulamada karşılaşabileceği yaygın örnekler yer almaktadır.
Liste dilimlemeyi kullanma
Python'da dilimleme, listeyi indekste bölmek için : operatörünü kullanır. Bu yöntem, dilimlemenin başlangıç ve bitişini belirtmek için indekslemeyi kullanır.
Dilimlemenin farklı teknikleri şunlardır:
Pozitif indeksle dilimleme
Bu yöntem, listedeki öğelere soldan sağa doğru ilerleyen pozitif indeks değerleriyle erişir.
# Define a list of integers from 1 to 10
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# Slice the list from index 2 to 7 (index 2 inclusive, index 7 exclusive)
# This will include elements at index 2, 3, 4, 5, and 6
sublist = my_list[2:7]
# Print the sliced sublist
print(sublist)
# Expected output: [3, 4, 5, 6, 7]
Negatif indeksle dilimleme
Bu Python liste bölme yöntemi, listedeki son öğeden başlayarak sağdan sola ilerleyen negatif indeks değerlerini kullanır.
# Define a list of integers from 1 to 10
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# Slice the list to get the last 5 elements
sublist = my_list[-5:]
# Print the sliced sublist containing the last 5 elements
print(sublist)
# Slice the list to get all elements except the last 3
sublist = my_list[:-3]
# Print the sliced sublist containing all but the last 3 elements
print(sublist)
# Expected output:
# [6, 7, 8, 9, 10]
# [1, 2, 3, 4, 5, 6, 7]
Adım (step) kullanma
Bu yaklaşım, farklı öğelere erişirken belirli koşulları kullanarak listeyi böler.
# Define a list of integers from 1 to 10
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# Slice the list to get every second element, starting from the beginning
sublist = my_list[::2]
# Print the sliced sublist containing every second element
print(sublist)
# Slice the list to get every second element, starting from index 1
sublist = my_list[1::2]
# Print the sliced sublist containing every second element, starting from index 1
print(sublist)
# Slice the list to get the elements in reverse order
sublist = my_list[::-1]
# Print the sliced sublist containing the elements in reverse order
print(sublist)
# Expected output:
# [1, 3, 5, 7, 9]
# [2, 4, 6, 8, 10]
# [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
Indeksleri atlama
Bu yöntem, Python listesini yalnızca gerekli öğeleri döndürerek dilimler.
# Define a list of integers from 1 to 10
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# Slice the list from the start to index 5 (index 5 not inclusive)
sublist = my_list[:5]
# Print the sliced sublist containing elements from the start to index 4
print(sublist)
# Slice the list from index 5 to the end
sublist = my_list[5:]
# Print the sliced sublist containing elements from index 5 to the end
print(sublist)
# Slice the list to get the entire list
sublist = my_list[:]
# Print the sliced sublist containing the entire list
print(sublist)
# Expected output:
# [1, 2, 3, 4, 5]
# [6, 7, 8, 9, 10]
# [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
Liste üreteçlerini kullanma
Python liste üreteci, mevcut listenin değerlerine göre listeyi parçalara ayırmanıza olanak tanır.
# Define a function to split a list into chunks of a specified size
def split_list(lst, chunk_size):
# Use a list comprehension to create chunks
# For each index 'i' in the range from 0 to the length of the list with step 'chunk_size'
# Slice the list from index 'i' to 'i + chunk_size'
return [lst[i:i + chunk_size] for i in range(0, len(lst), chunk_size)]
# Define a list of integers from 1 to 15
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
# Split the list into chunks of size 3 using the split_list function
chunks = split_list(my_list, 3)
# Print the resulting list of chunks
print(chunks)
# Expected output:
# [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12], [13, 14, 15]]
Yukarıdaki kod, listeyi üçer öğeden oluşan n parçalara ayırarak her biri 3 değer içeren yeni bir liste döndürür.
Itertools kullanma
Python'da itertools kullanarak liste bölme, veriyi yineleme yoluyla dönüştürmek için bu Python modülünü kullanır.
# Import the islice function from the itertools module
from itertools import islice
# Define a function to yield chunks of a specified size from an iterable
def chunks(iterable, size):
# Create an iterator from the input iterable
iterator = iter(iterable)
# Loop over the iterator, taking the first element in each iteration
for first in iterator:
# Yield a list consisting of the first element and the next 'size-1' elements from the iterator
yield [first] + list(islice(iterator, size - 1))
# Define a list of integers from 1 to 15
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
# Convert the generator returned by the chunks function into a list of chunks
chunked_list = list(chunks(my_list, 3))
# Print the resulting list of chunks
print(chunked_list)
# Expected output:
# [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12], [13, 14, 15]]
numpy kullanma
Python'daki numpy kütüphanesi, dizileri alt listelere bölmek için kullanışlıdır. .array_split() fonksiyonu, bölme sayısını belirttiğinizde bölmeye olanak tanır.
# Import the numpy library and alias it as np
import numpy as np
# Define a list of integers from 1 to 15
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
# Use numpy's array_split function to split the list into 3 chunks
chunks = np.array_split(my_list, 3)
# Convert each chunk back to a regular list and print the resulting list of chunks
print([list(chunk) for chunk in chunks])
# Expected output:
# [[np.int32(1), np.int32(2), np.int32(3), np.int32(4), np.int32(5)], [np.int32(6), np.int32(7), np.int32(8), np.int32(9), np.int32(10)], [np.int32(11), np.int32(12), np.int32(13), np.int32(14), np.int32(15)]]
Listeleri parçalara bölme
Aşağıdaki Python fonksiyonu da bir listeyi parçalara ayırmanıza olanak tanır. Bu parçalar, kullanıcının ihtiyaç duyduğu sayıya göre özelleştirilebilir.
# Define a function to split a list into chunks of a specified size
def split_into_chunks(lst, chunk_size):
chunks = [] # Initialize an empty list to store chunks
# Iterate over the list with a step of chunk_size
for i in range(0, len(lst), chunk_size):
# Slice the list from index 'i' to 'i + chunk_size' and append it to chunks
chunks.append(lst[i:i + chunk_size])
return chunks # Return the list of chunks
# Define a list of integers from 1 to 16
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]
# Split the list into chunks of size 4 using the split_into_chunks function
chunks = split_into_chunks(my_list, 4)
# Print the resulting list of chunks
print(chunks)
# Expected output:
# [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [13, 14, 15, 16]]
Koşullara göre listeleri bölme
Python'da bir listeyi bölmek istediğinizde, alt liste için bazı kural/koşullar belirleyebilirsiniz. Bu yöntem, bu koşulları karşılayan bir alt liste oluşturmanıza olanak tanır.
# Define a list of integers from 1 to 15
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
# List comprehension to filter elements divisible by 3
div_3 = [x for x in my_list if x % 3 == 0]
# List comprehension to filter elements not divisible by 3
not_div_3 = [x for x in my_list if x % 3 != 0]
# Print the list of elements divisible by 3
print(div_3)
# Print the list of elements not divisible by 3
print(not_div_3)
# Expected output:
# [3, 6, 9, 12, 15]
# [1, 2, 4, 5, 7, 8, 10, 11, 13, 14]
for döngülerini kullanma
for döngüleri de Python'da listeleri yineleme ve koşullara göre bölmek için kullanılabilir.
# Define a function to split a list into sub-lists of size n
def split_by_n(lst, n):
# Use a list comprehension to create sub-lists
# For each index 'i' in the range from 0 to the length of the list with step 'n'
# Slice the list from index 'i' to 'i + n'
return [lst[i:i + n] for i in range(0, len(lst), n)]
# Define a list of integers from 1 to 15
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
# Split the list into sub-lists of size 5 using the split_by_n function
sub_lists = split_by_n(my_list, 5)
# Print the resulting list of sub-lists
print(sub_lists)
# Expected output:
# [[1, 2, 3, 4, 5], [6, 7, 8, 9, 10], [11, 12, 13, 14, 15]]
zip() fonksiyonunu kullanma
Python'da zip() fonksiyonunu da eşleştirme yoluyla liste bölmek için kullanabilirsiniz.
# Define two lists: list1 containing integers from 1 to 10, and list2 containing letters from 'a' to 'j'
list1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
list2 = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']
# Use the zip function to pair corresponding elements from list1 and list2 into tuples
paired = list(zip(list1, list2))
# Print the list of paired tuples
print(paired)
# Expected output:
# [(1, 'a'), (2, 'b'), (3, 'c'), (4, 'd'), (5, 'e'), (6, 'f'), (7, 'g'), (8, 'h'), (9, 'i'), (10, 'j')]
enumerate() fonksiyonunu kullanma
enumerate() fonksiyonu, indeks koşullarını kullanarak Python listelerini böler. Bu fonksiyon, listeyi eşit büyüklükte parçalara ayırmak için yinelemeden yararlanır.
# Define a list of integers from 1 to 15
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
# Define the chunk size for splitting the list
chunk_size = 5
# Create a list of empty lists, one for each chunk
split_list = [[] for _ in range(chunk_size)]
# Iterate over the elements and their indices in my_list
for index, value in enumerate(my_list):
# Calculate the index of the sublist where the current value should go using modulo operation
sublist_index = index % chunk_size
# Append the current value to the corresponding sublist in split_list
split_list[sublist_index].append(value)
# Print the list of sublists after splitting my_list into chunks
print(split_list)
# Expected output:
# [[1, 6, 11], [2, 7, 12], [3, 8, 13], [4, 9, 14], [5, 10, 15]]
Python'da string'i listeye bölme
split() yöntemini kullanma
split() yöntemi, belirtilen bir ayırıcıya göre bir string'i Python'da bir listeye böler. Yöntem, verilen string'deki ayırıcı sayısına göre alt dizeleri döndürür.
# Define a string
myString = "Goodmorning to you"
# Split the string into a list of words based on whitespace (default separator)
my_list = myString.split()
# Print the resulting list
print(my_list)
# Expected output: ['Goodmorning', 'to', 'you']
splitlines() yöntemini kullanma
splitlines() yöntemi, yeni satır karakterine göre string'i Python'da listeye böler.
# Define a string with newline characters
myString = "Goodmorning\nto\nyou"
# Split the string into a list of lines based on newline characters
my_list = myString.splitlines()
# Print the resulting list
print(my_list)
# Expected output: ['Goodmorning', 'to', 'you']
partition() yöntemini kullanma
partition() yöntemi, verilen ayırıcıyı kullanarak string'leri Python'da listelere böler. Bu yöntem üç parça döndürür; ayırıcıdan önceki string, ayırıcı ve ayırıcıdan sonraki her şey bir liste olarak.
# Define a string with a delimiter '/'
myString = "Goodmorning/to you"
# Use the partition() method to split the string into three parts based on the first occurrence of '/'
my_list = myString.partition('/')
# Print the resulting tuple
print(my_list)
# Expected output: ('Goodmorning', '/', 'to you')
Düzenli ifadeleri kullanma
Python'da düzenli ifadeler de bir string'i listeye bölmek için kullanılabilir. Aşağıdaki örnek, bunun boşluk karakterlerine göre nasıl yapılacağını gösterir.
# Import the 're' module for regular expressions
import re
# Define a string
myString = "Goodmorning to you"
# Use re.split() to split the string based on whitespace ('\s' matches any whitespace character)
# Returns a list of substrings where the string has been split at each whitespace
my_list = re.split('\s', myString)
# Print the resulting list
print(my_list)
# Expected output: ['Goodmorning', 'to', 'you']
Karşılaştırma tablosu
Aşağıdaki tablo, farklı tekniklerin ne zaman faydalı olabileceğini hızlıca görmenizi sağlar. Pratikte, aynı teknik birçok durumda belirgin performans farkları olmadan işe yarayabilir; bu nedenle belirli bir tekniğin en faydalı olduğu durumlara ilişkin vurgular bir miktar abartılı olabilir.
| Teknik | Kullanım Durumu | Ne Zaman Yararlıdır |
|---|---|---|
| Dilimleme | Bir listeyi belirli bir indeks ya da indeks aralığında bölme. | Basit, düz bölmeler için kullanışlıdır. |
| Liste Üreteçleri | Listedeki değerlere veya koşullara göre alt listeler oluşturma. | Daha karmaşık, ölçüt tabanlı bölmeler için kullanışlıdır. |
| itertools.islice | Bir yineleyici kullanarak listeyi belirli boyutta parçalara bölme. | Büyük listeleri verimli biçimde işlemek için kullanışlıdır. |
| numpy.array_split | İstenilen bölme sayısına göre dizileri alt listelere ayırma. | Sayısal verileri verimli biçimde işlemek için kullanışlıdır. |
| Koşul Tabanlı Bölme | Örneğin bölünebilirlik gibi koşullara göre bir listeyi bölme. | Veriyi anlamlı alt listelere ayırmak için kullanışlıdır. |
| for Döngüleri | Belirli bir boyutta alt listeler oluşturmak için liste üzerinde yineleme. | Bölme süreci üzerinde daha fazla kontrol gerektiğinde kullanışlıdır. |
| zip() Fonksiyonu | İki listedeki öğeleri eşleştirme. | Birbiriyle ilişkili iki listeden veriyi birleştirmek için kullanışlıdır. |
| enumerate() Fonksiyonu | Genellikle eşit boyutlu parçalar için indeks koşullarını kullanarak listeleri bölme. | Eşit dağıtılmış alt listeler oluşturmak için kullanışlıdır. |
| split() Yöntemi | Belirli bir ayırıcıya göre string'leri listelere bölme. | Metin verisi işleme için kullanışlıdır. |
| splitlines() Yöntemi | Yeni satır karakterlerine göre string'leri listelere bölme. | Çok satırlı metin verisini okumak için kullanışlıdır. |
| partition() Yöntemi | Belirli bir ayırıcıya göre string'leri üç parçaya bölme. | Belirli metin işleme senaryoları için kullanışlıdır. |
| Düzenli İfadeler | Karmaşık desenlere göre string'leri listelere bölmek için regex kullanma. | Gelişmiş metin verisi işleme için kullanışlıdır. |
Yaygın Hatalar ve Bunlardan Kaçınma Yolları
Bir veri uzmanı, Python'da listeleri bölerken bazı yaygın hatalarla karşılaşabilir. Aşağıda bu hatalardan bazıları ve bunlardan nasıl kaçınılacağı yer almaktadır.
Bir farkla kaymalar (off-by-one) hataları
Off-by-one hatası, temel dilimleme sırasında listede gerekenden bir indeks az ya da fazla dahil ettiğinizde ortaya çıkar.
my_list = [1, 2, 3, 4, 5]
# Trying to get sublist from index 2 to 4, inclusive
sublist = my_list[2:5] # Correct: my_list[2:5]
print(sublist)
# Incorrect usage:
sublist = my_list[2:4] # Incorrect, excludes index 4
print(sublist)
# Expected output:
# [3, 4, 5]
# [3, 4]
Bu hatadan kaçınmak için, Python'daki indeksleme sırasını anlayın ve indeksleme yaparken neyin dahil edilip edilmeyeceğini bilin.
Kullanılan paketlerle ilgili hatalar
Özellikle bölme yöntemi Python modülleri gerektirdiğinde paketlerle ilgili hatalarla karşılaşabilirsiniz. Örneğin numpy, re ve itertools paketleri. Bu hatadan kaçınmak için paketlerin doğru şekilde yüklendiğinden ve uyumlu sürümlerin kullanıldığından emin olun.
Köşe durumlarını (edge cases) ele alma
Python'da liste bölmede bazı senaryoları hesaba katmadığınızda köşe durumları ortaya çıkabilir. Örneğin, aşağıdaki kod parçacığı, liste yalnızca 4 öğe içerirken listeleri 5'lik parçalara bölmeye çalışan bir fonksiyonu göstermektedir.
import numpy as np
my_list = [1, 2, 3, 4]
chunks = np.array_split(my_list, 5)
print(chunks)
# Expected output:
# [array([1]), array([2]), array([3]), array([4]), array([], dtype=int32)]
Bu hatadan kaçınmak için, aşağıda gösterildiği gibi köşe durumunu ele almak üzere koşullu ifadeler kullanın.
import numpy as np
my_list = [1, 2, 3, 4]
if len(my_list) < 5:
chunks = [my_list]
else:
chunks = np.array_split(my_list, 5)
print(chunks)
# Expected output: [[1, 2, 3, 4]]
Özel karakterleri ele alma
Özel karakterleri doğru şekilde ele almamak, Python'da string listelerini bölerken hatalara yol açabilir. Bu özel karakterlere boşluklar, virgüller veya alfa-sayısallar dahildir.
Aşağıdaki örnek, string listesini bölmek için karakteri belirterek bu hatadan nasıl kaçınılabileceğini gösterir.
# Example list with special characters
my_list = ["apple, orange", "dog, mouse", "green, blue"]
# Splitting each string by the comma
split_list = [s.split(",") for s in my_list]
print(split_list)
# Expected output:
# [['apple', ' orange'], ['dog', ' mouse'], ['green', ' blue']]
En İyi Uygulamalar ve Yönergeler
Python'da liste bölme veri analizinde yaygın bir işlem olduğundan, verimlilik için bazı uygulamalara uymak önemlidir. Bu öneriler şunlardır;
- Mümkün Olduğunda Değişmezliği Korumak: Orijinal liste değiştirilmemeliyse, dilimleme işlemlerinizin orijinal listeyi değiştirmediğinden emin olun. Dilimleme genellikle yeni listeler oluşturur, bu yüzden çoğu zaman sorun olmaz; ancak daha karmaşık veri yapılarıyla çalışırken dikkatli olun.
- Performansı Optimize Edin: Büyük listelerle çalışırken performans etkilerini göz önünde bulundurun. Dilimleme genellikle verimlidir, ancak büyük listelerin gereksiz yere kopyalanması performans darboğazlarına yol açabilir.
- Köşe Durumlarını Ele Alın: Boş liste, listenin başlangıcında veya sonunda bölme ve geçersiz indeksler gibi köşe durumları düşünün. Kodunuzun bu senaryoları sorunsuzca ele alabildiğinden emin olun.
- Hata Yönetimi ve Doğrulama Ekleyin: Python'da bir listeyi birden çok listeye bölerken hata yönetimi özellikle önemlidir; böylece kodunuz bozulmaz ve sürprizler yaşanmaz.
DataCamp’in Python Programming kursu, hata yönetimi ve performans gibi yaygın kavramları dikkate alarak verimli kod yazmanın en iyi uygulamalarını ayrıntılı olarak açıklar.
İleri Düzey Liste Bölme Teknikleri
Listeleri bölme işlemi, daha fazla kontrol ve esneklik sunan çeşitli yöntemlerden yararlanılarak ileri düzeye taşınabilir.
Listeyi birden çok listeye bölme
Python listesini belirli indekslerde bölmeyi belirterek birden çok listeye ayırabilirsiniz. Örneğin, aşağıdaki kod listeyi 2, 5, 7 indekslerinde böler.
def split_at_indices(lst, indices):
result = []
prev_index = 0
for index in indices:
result.append(lst[prev_index:index])
prev_index = index
result.append(lst[prev_index:])
return result
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
indices = [2, 5, 7]
split_lists = split_at_indices(my_list, indices)
print(split_lists)
# Expected output: [[1, 2], [3, 4, 5], [6, 7], [8, 9, 10]]
Listeyi eşit parçalara bölme
İstediğiniz parça sayısına göre bir Python listesini eşit parçalara bölmek için 'numpy' gibi yerleşik bir kütüphane de kullanabilirsiniz.
import numpy as np
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
num_parts = 3
split_lists = np.array_split(my_list, num_parts)
print([list(arr) for arr in split_lists])
# Expected output:
# [[np.int32(1), np.int32(2), np.int32(3), np.int32(4), np.int32(5)], [np.int32(6), np.int32(7), np.int32(8), np.int32(9), np.int32(10)], [np.int32(11), np.int32(12), np.int32(13), np.int32(14), np.int32(15)]]
Bir listeyi ikiye bölme
Dilimlemeyi kullanarak Python listesini ikiye bölebilirsiniz.
def split_in_half(lst):
# Calculate the midpoint index of the list
mid_index = len(lst) // 2
# Return the two halves of the list
return lst[:mid_index], lst[mid_index:]
# Example list
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# Split the list into two halves
first_half, second_half = split_in_half(my_list)
print(first_half)
print(second_half)
# Expected output:
# [1, 2, 3, 4, 5]
# [6, 7, 8, 9, 10]
Öğe sayısı tek olan bir liste durumunda, ilk yarıya dahil edilecek indeksi belirtebilirsiniz.
def split_in_half(lst):
# Calculate the midpoint index of the list, including the middle element in the first half if the length is odd
mid_index = (len(lst) + 1) // 2
# Return the two halves of the list
return lst[:mid_index], lst[mid_index:]
# Example list
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9]
# Split the list into two halves, handling odd-length
first_half, second_half = split_in_half(my_list)
print(first_half)
print(second_half)
# Expected output:
# [1, 2, 3, 4, 5]
# [6, 7, 8, 9]
Python Developer yolu da, ileri düzey liste bölme tekniklerini anlamanıza yardımcı olacak gelişmiş kod yazımı hakkında içgörüler sunar.
Sonuç
Python'da listeleri bölmek için farklı yöntemler vardır. Her yöntem, listenin türüne ve kullanıcının verimlilik tercihine bağlıdır. Bir veri uzmanı olarak, analizinize en uygun liste bölme yöntemini seçmek önemlidir.
Python'da liste bölmeyi kapsamlı biçimde anlamak için Python Fundamentals kursumuzdan daha fazlasını öğrenebilirsiniz. Ayrıca Introduction to Python kursunu alarak Python'da listeler ve diğer veri tipleri üzerinde işlem yapmayı ustalıkla öğrenebilirsiniz. Yeni Başlayanlar için Python Cheat Sheet, Python'da bir listeyi nasıl böleceğinize hızlıca göz atmak istediğinizde de işe yarar.
Sıkça Sorulan Sorular
Python'da bir listeyi ne zaman bölmem gerekir?
Python'da liste bölme, özellikle büyük veri kümelerini yönetirken veri işleme için önemlidir. Dönüşümler, veriyi analiz yapmak üzere böldüğünüzde—örneğin makine öğrenimi modellerini eğitmek ve test etmek için—yardımcı olur.
itertools ve numpy modülleri hata verirse ne yapmalıyım?
Uygun Python kütüphanelerinin kurulu olduğundan emin olun. Hata devam ederse, kütüphaneleri güncelleyip uyumlu sürümlerini kullandığınızdan emin olun.
Bir Python listesini bölmek ile partition() arasındaki fark nedir?
partition() yöntemi, koşullu argümanın ortada olduğu üçlü (tuple) döndürür.
Belirli bir ayırıcı veya değerle bir Python listesini bölebilir miyim?
Listeyi bölmek için verilen ayırıcıyı veya değeri belirtmeniz gerekir.
Bir listeyi birden çok listeye böldüğümde kodumun performansını nasıl artırırım?
Bir listeyi birden çok listeye bölerken yeniden kullanılabilir bir fonksiyon kullanın. Bu yaklaşım verimlilik sağlar.

