Lists

Lists

mylist = ["apple", "banana", "cherry"]

List digunakan untuk menyimpan beberapa item dalam satu variabel.

List adalah salah satu dari 4 tipe data bawaan Python yang digunakan untuk menyimpan kumpulan data. Tiga tipe data lainnya adalah Tuple, Set, dan Dictionary, yang semuanya memiliki kualitas dan penggunaan yang berbeda.

List dibuat menggunakan tanda kurung siku:

thislist = ["apple", "banana", "cherry"]
print(thislist)

List Items

Item daftar diurutkan, dapat diubah, dan memungkinkan nilai duplikat.

Item daftar diindeks, item pertama memiliki indeks [0], item kedua memiliki indeks [1], dst.

Ordered

Ketika kita mengatakan bahwa daftar diurutkan, artinya item-itemnya memiliki urutan yang pasti, dan urutan tersebut tidak akan berubah.

Jika Anda menambahkan item baru ke dalam daftar, item baru tersebut akan ditempatkan di akhir daftar.

Catatan

Ada beberapa metode daftar yang akan mengubah urutannya, tetapi secara umum: urutan item tidak akan berubah.

Changeable

Daftar tersebut dapat diubah, artinya kita dapat mengubah, menambah, dan menghapus item dalam daftar setelah daftar dibuat.

Allow Duplicates

Karena daftar diindeks, daftar dapat memiliki item dengan nilai yang sama:

thislist = ["apple", "banana", "cherry", "apple", "cherry"]
print(thislist)

List Length

Untuk menentukan berapa banyak item yang dimiliki suatu daftar, gunakan fungsi len():

thislist = ["apple", "banana", "cherry"]
print(len(thislist)) # return 3

List Items - Data Types

Item daftar dapat berupa tipe data apa pun:

# String, int and boolean data types:
list1 = ["apple", "banana", "cherry"]
list2 = [1, 5, 7, 9, 3]
list3 = [True, False, False]

# A list can contain different data types:
list1 = ["abc", 34, True, 40, "male"]

type()

Dari perspektif Python, daftar didefinisikan sebagai objek dengan tipe data 'daftar':

<class 'list'>

What is the data type of a list?

mylist = ["apple", "banana", "cherry"]
print(type(mylist))
# return <class 'list'>

The list() Constructor

Dimungkinkan juga untuk menggunakan konstruktor list() saat membuat daftar baru.

thislist = list(("apple", "banana", "cherry")) # note the double round-brackets
print(thislist)

Koleksi Python (Array)

Ada empat tipe data koleksi dalam bahasa pemrograman Python:

  • List adalah koleksi yang diurutkan dan dapat diubah. Mengizinkan anggota duplikat.

  • Tuple adalah koleksi yang diurutkan dan tidak dapat diubah. Mengizinkan anggota duplikat.

  • Set adalah koleksi yang tidak diurutkan, tidak dapat diubah*, dan tidak terindeks. Tidak ada anggota duplikat.

  • Dictionary adalah koleksi yang diurutkan** dan dapat diubah. Tidak ada anggota duplikat.

Catatan

*Item set tidak dapat diubah, tetapi Anda dapat menghapus dan/atau menambahkan item kapan pun Anda mau.

**Mulai Python versi 3.7, dictionary diurutkan. Pada Python 3.6 dan versi sebelumnya, dictionary tidak diurutkan.

Saat memilih tipe koleksi, penting untuk memahami properti tipe tersebut. Memilih tipe yang tepat untuk set data tertentu dapat berarti mempertahankan makna, dan, dapat berarti peningkatan efisiensi atau keamanan.

Access List Items

Item daftar diindeks dan Anda dapat mengaksesnya dengan merujuk ke nomor indeks:

thislist = ["apple", "banana", "cherry"]
print(thislist[1]) # return banana

# The first item has index 0.

Negative Indexing ~~~

Pengindeksan negatif berarti mulai dari akhir.

-1 mengacu pada item terakhir, -2 mengacu pada item kedua terakhir, dst.

thislist = ["apple", "banana", "cherry"]
print(thislist[-1]) # return cherry

Range of Indexes

Anda dapat menentukan rentang indeks dengan menentukan titik awal dan titik akhir rentang.

Saat menentukan rentang, nilai yang dikembalikan akan berupa daftar baru dengan item yang ditentukan.

thislist = ["apple", "banana", "cherry", "orange", "kiwi", "melon", "mango"]
print(thislist[2:5])

# return ['cherry', 'orange', 'kiwi']

#This will return the items from position 2 to 5.
#Remember that the first item is position 0,
#and note that the item in position 5 is NOT included

Range of Negative Indexes

Tentukan indeks negatif jika Anda ingin memulai pencarian dari akhir daftar:

thislist = ["apple", "banana", "cherry", "orange", "kiwi", "melon", "mango"]
print(thislist[-4:-1])

# return ['orange', 'kiwi', 'melon']

#Negative indexing means starting from the end of the list.
#This example returns the items from index -4 (included) to index -1 (excluded)
#Remember that the last item has the index -1,

Check if Item Exists

Untuk menentukan apakah item tertentu ada dalam daftar, gunakan kata kunci in:

thislist = ["apple", "banana", "cherry"]
if "apple" in thislist:
  print("Yes, 'apple' is in the fruits list")

# return Yes, 'apple' is in the fruits list

Change List Items

Change Item Value

Untuk mengubah nilai item tertentu, lihat nomor indeks:

thislist = ["apple", "banana", "cherry"]
thislist[1] = "blackcurrant"

print(thislist)

# return ['apple', 'blackcurrant', 'cherry']

Change a Range of Item Values

Untuk mengubah nilai item dalam rentang tertentu, tentukan daftar dengan nilai baru, dan rujuk rentang nomor indeks tempat Anda ingin memasukkan nilai baru:

# Change the values "banana" and "cherry" with the values "blackcurrant" and "watermelon":

thislist = ["apple", "banana", "cherry", "orange", "kiwi", "mango"]
thislist[1:3] = ["blackcurrant", "watermelon"]
print(thislist)

# return ['apple', 'blackcurrant', 'watermelon', 'orange', 'kiwi', 'mango']

Jika Anda memasukkan lebih banyak item daripada yang Anda ganti, item baru akan dimasukkan di tempat yang Anda tentukan, dan item yang tersisa akan dipindahkan sesuai dengan itu:

# Change the second value by replacing it with two new values:

thislist = ["apple", "banana", "cherry"]
thislist[1:2] = ["blackcurrant", "watermelon"]
print(thislist)

# return ['apple', 'blackcurrant', 'watermelon', 'cherry']

Catatan

Panjang daftar akan berubah jika jumlah item yang dimasukkan tidak sesuai dengan jumlah item yang diganti.

Jika Anda memasukkan item yang lebih sedikit daripada yang Anda ganti, item baru akan dimasukkan di tempat yang Anda tentukan, dan item yang tersisa akan dipindahkan sesuai dengan itu:

thislist = ["apple", "banana", "cherry"]
thislist[1:3] = ["watermelon"]
print(thislist)

# return ['apple', 'watermelon']

Insert Items

Untuk menyisipkan (insert) item daftar baru tanpa mengganti nilai yang sudah ada, kita dapat menggunakan metode insert().

thislist = ["apple", "banana", "cherry"]
thislist.insert(2, "watermelon")
print(thislist)

# return ['apple', 'banana', 'watermelon', 'cherry']

Catatan

Sebagai hasil dari contoh di atas, daftar sekarang akan berisi 4 item.

Add List Items

Append Items

Untuk menambahkan item ke akhir daftar, gunakan metode append():

thislist = ["apple", "banana", "cherry"]
thislist.append("orange")
print(thislist)

#return ['apple', 'banana', 'cherry', 'orange']

Insert Items

Untuk menyisipkan item daftar pada indeks tertentu, gunakan metode insert().

thislist = ["apple", "banana", "cherry"]
thislist.insert(1, "orange")
print(thislist)

#return ['apple', 'orange', 'banana', 'cherry']

Extend List

Untuk menambahkan elemen dari daftar lain ke daftar saat ini, gunakan metode extend()

thislist = ["apple", "banana", "cherry"]
tropical = ["mango", "pineapple", "papaya"]
thislist.extend(tropical)
print(thislist)

#return ['apple', 'banana', 'cherry', 'mango', 'pineapple', 'papaya']

Add Any Iterable

Metode extend() tidak harus menambahkan daftar, Anda dapat menambahkan objek apa pun yang dapat diulang (tupel, set, dictionaries, dll.).

thislist = ["apple", "banana", "cherry"]
thistuple = ("kiwi", "orange")
thislist.extend(thistuple)
print(thislist)

#return ['apple', 'banana', 'cherry', 'kiwi', 'orange']

Remove List Items

Metode remove() menghapus item yang ditentukan.

thislist = ["apple", "banana", "cherry"]
thislist.remove("banana")
print(thislist)

#return ['apple', 'cherry']

Jika ada lebih dari satu item dengan nilai yang ditentukan, metode remove() menghapus kemunculan pertama:

thislist = ["apple", "banana", "cherry", "banana", "kiwi"]
thislist.remove("banana")
print(thislist)

#return ['apple', 'cherry', 'banana', 'kiwi']

Remove Specified Index

Metode pop() menghapus indeks yang ditentukan.

#Remove the second item:
thislist = ["apple", "banana", "cherry"]
thislist.pop(1)
print(thislist)
#return ['apple', 'cherry']

Jika Anda tidak menentukan indeks, metode pop() akan menghapus item terakhir.

thislist = ["apple", "banana", "cherry"]
thislist.pop()
print(thislist) #return ['apple', 'banana']

Kata kunci del juga menghapus indeks yang ditentukan:

thislist = ["apple", "banana", "cherry"]
del thislist[0]
print(thislist) #return ['banana', 'cherry']

Kata kunci del juga dapat menghapus daftar sepenuhnya.

thislist = ["apple", "banana", "cherry"]
del thislist
print(thislist) #this will cause an error because you have succsesfully deleted "thislist".

Clear the List

Metode clear() mengosongkan daftar. List tersebut tetap ada, tetapi tidak memiliki konten.

thislist = ["apple", "banana", "cherry"]
thislist.clear()
print(thislist) #return []

Loop Lists

Loop Through a List

Anda dapat melakukan pengulangan pada item-item dalam daftar dengan menggunakan for loop:

thislist = ["apple", "banana", "cherry"]
for x in thislist:
  print(x)

#return
apple
banana
cherry

Loop Through the Index Numbers

Anda juga dapat melakukan pengulangan pada item-item dalam daftar dengan merujuk pada nomor indeksnya. Gunakan fungsi range() dan len() untuk membuat iterable yang sesuai.

thislist = ["apple", "banana", "cherry"]
for i in range(len(thislist)):
  print(thislist[i])

Using a While Loop

Anda dapat melakukan perulangan melalui item-item dalam daftar menggunakan while loop.

Gunakan fungsi len() untuk menentukan panjang daftar, lalu mulai dari 0 dan lakukan perulangan melalui item-item dalam daftar dengan merujuk pada indeksnya.

Ingatlah untuk menambah indeks sebesar 1 setelah setiap iterasi.

thislist = ["apple", "banana", "cherry"]
i = 0
while i < len(thislist):
  print(thislist[i])
  i = i + 1

Looping Using List Comprehension

Pemahaman Daftar (List Comprehension) menawarkan sintaksis terpendek untuk melakukan pengulangan melalui daftar:

thislist = ["apple", "banana", "cherry"]
[print(x) for x in thislist]

List Comprehension

Pemahaman daftar menawarkan sintaksis yang lebih singkat ketika Anda ingin membuat daftar baru berdasarkan nilai dari daftar yang sudah ada.

Contoh:

Berdasarkan daftar buah-buahan, Anda menginginkan daftar baru yang hanya berisi buah-buahan dengan huruf "a" pada namanya.

Tanpa list comprehension, Anda harus menulis pernyataan for dengan pengujian kondisional di dalamnya:

fruits = ["apple", "banana", "cherry", "kiwi", "mango"]
newlist = []

for x in fruits:
  if "a" in x:
    newlist.append(x)

print(newlist) #return ['apple', 'banana', 'mango']

Dengan list comprehension, Anda dapat melakukan semua itu hanya dengan satu baris kode:

fruits = ["apple", "banana", "cherry", "kiwi", "mango"]

newlist = [x for x in fruits if "a" in x]

print(newlist) #return ['apple', 'banana', 'mango']

The Syntax

newlist = [expression for item in iterable if condition == True]

Nilai yang dikembalikan adalah list baru, yang tidak mengubah list lama.

Condition

Kondisi ini seperti filter yang hanya menerima item yang bernilai True.

fruits = ["apple", "banana", "cherry", "kiwi", "mango"]
newlist = [x for x in fruits if x != "apple"]
print(newlist) #return ['banana', 'cherry', 'kiwi', 'mango']

Kondisi jika x != "apel" akan mengembalikan nilai True untuk semua elemen selain "apel", sehingga daftar baru berisi semua buah kecuali "apel".

Kondisi ini opsional dan dapat diabaikan:

#With no if statement:
newlist = [x for x in fruits]

Iterable

Yang dapat diulang dapat berupa objek apa pun yang dapat diulang, seperti list, tupel, set, dan sebagainya.

newlist = [x for x in range(10)]
print(newlist) #return [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

newlist = [x for x in range(10) if x < 5]
print(newlist) #return [0, 1, 2, 3, 4]

Expression

Ekspresi adalah item saat ini dalam iterasi, tetapi juga merupakan hasil, yang dapat Anda manipulasi sebelum berakhir seperti list item dalam list baru:

Set the values in the new list to upper case:
fruits = ["apple", "banana", "cherry", "kiwi", "mango"]
newlist = [x.upper() for x in fruits]
print(newlist)
#return ['APPLE', 'BANANA', 'CHERRY', 'KIWI', 'MANGO']

Anda dapat mengatur hasilnya sesuai keinginan Anda:

fruits = ["apple", "banana", "cherry", "kiwi", "mango"]
newlist = ['hello' for x in fruits]
print(newlist) #return ['hello', 'hello', 'hello', 'hello', 'hello']

Ekspresi tersebut juga dapat berisi kondisi, tidak seperti filter, tetapi sebagai cara untuk memanipulasi hasilnya:

fruits = ["apple", "banana", "cherry", "kiwi", "mango"]
newlist = [x if x != "banana" else "orange" for x in fruits]
print(newlist) #return ['apple', 'orange', 'cherry', 'kiwi', 'mango']

# The expression in the example above says:
# "Return the item if it is not banana, if it is banana return orange".

Sort Lists

Sort List Alphanumerically

Objek daftar memiliki metode sort() yang akan mengurutkan daftar secara alfanumerik, menaik, secara default:

thislist = ["orange", "mango", "kiwi", "pineapple", "banana"]
thislist.sort()
print(thislist) #return ['banana', 'kiwi', 'mango', 'orange', 'pineapple']

thislist = [100, 50, 65, 82, 23]
thislist.sort()
print(thislist) #return [23, 50, 65, 82, 100]

Sort Descending

Untuk mengurutkan secara menurun, gunakan argumen kata kunci reverse = True:

thislist = ["orange", "mango", "kiwi", "pineapple", "banana"]
thislist.sort(reverse = True)
print(thislist) #return ['pineapple', 'orange', 'mango', 'kiwi', 'banana']

thislist = [100, 50, 65, 82, 23]
thislist.sort(reverse = True)
print(thislist) #return [100, 82, 65, 50, 23]

Customize Sort Function

Anda juga dapat menyesuaikan fungsi Anda sendiri dengan menggunakan argumen kata kunci key = function.

# Sort the list based on how close the number is to 50:

def myfunc(n):
  return abs(n - 50)

thislist = [100, 50, 65, 82, 23]
thislist.sort(key = myfunc)
print(thislist) #return [50, 65, 23, 82, 100]

Case Insensitive Sort

Secara default metode sort() peka huruf besar-kecil, sehingga semua huruf kapital diurutkan sebelum huruf kecil:

# Case sensitive sorting can give an unexpected result:

thislist = ["banana", "Orange", "Kiwi", "cherry"]
thislist.sort()
print(thislist) #return ['Kiwi', 'Orange', 'banana', 'cherry']

Untungnya, kita bisa menggunakan fungsi bawaan sebagai fungsi kunci saat mengurutkan daftar.

Jadi, jika Anda menginginkan fungsi pengurutan yang tidak peka huruf besar-kecil, gunakan str.lower sebagai fungsi kunci:

#Perform a case-insensitive sort of the list:

thislist = ["banana", "Orange", "Kiwi", "cherry"]
thislist.sort(key = str.lower)
print(thislist) #return ['banana', 'cherry', 'Kiwi', 'Orange']

Reverse Order

Bagaimana jika Anda ingin membalik urutan daftar, apa pun alfabetnya?

Metode reverse() membalikkan urutan pengurutan elemen saat ini.

thislist = ["banana", "Orange", "Kiwi", "cherry"]
thislist.reverse()
print(thislist) #return ['cherry', 'Kiwi', 'Orange', 'banana']

Copy Lists

Copy a List

Anda tidak dapat menyalin daftar hanya dengan mengetik list2 = list1, karena: list2 hanya akan menjadi referensi ke list1, dan perubahan yang dibuat dalam list1 akan secara otomatis juga dibuat di list2.

Use the copy() method

thislist = ["apple", "banana", "cherry"]
mylist = thislist.copy()
print(mylist) #return ['apple', 'banana', 'cherry']

Use the list() method

Cara lain untuk membuat salinan adalah dengan menggunakan metode bawaan list().

thislist = ["apple", "banana", "cherry"]
mylist = list(thislist)
print(mylist) #return ['apple', 'banana', 'cherry']

Use the slice Operator

thislist = ["apple", "banana", "cherry"]
mylist = thislist[:]
print(mylist) #return ['apple', 'banana', 'cherry']

Join Lists

Join Two Lists

Ada beberapa cara untuk menggabungkan, atau menggabung, dua atau lebih daftar di Python.

Salah satu cara termudah adalah dengan menggunakan operator +.

list1 = ["a", "b", "c"]
list2 = [1, 2, 3]

list3 = list1 + list2
print(list3) #return ['a', 'b', 'c', 1, 2, 3]

Cara lain untuk menggabungkan dua daftar adalah dengan menambahkan semua item dari daftar2 ke daftar1, satu per satu:

list1 = ["a", "b" , "c"]
list2 = [1, 2, 3]

for x in list2:
  list1.append(x)

print(list1)

Atau Anda dapat menggunakan metode extend(), yang tujuannya adalah untuk menambahkan elemen dari satu daftar ke daftar lainnya:

list1 = ["a", "b" , "c"]
list2 = [1, 2, 3]

list1.extend(list2)
print(list1)  #return ['a', 'b', 'c', 1, 2, 3]

List Methods

Python memiliki serangkaian metode bawaan yang dapat Anda gunakan pada daftar.

Method

Description

append()

Adds an element at the end of the list

clear()

Removes all the elements from the list

copy()

Returns a copy of the list

count()

Returns the number of elements with the specified value

extend()

Add the elements of a list (or any iterable), to the end of the current list

index()

Returns the index of the first element with the specified value

insert()

Adds an element at the specified position

pop()

Removes the element at the specified position

remove()

Removes the item with the specified value

reverse()

Reverses the order of the list

sort()

Sorts the list