Списки, кортежи и словари в Python
Python содержит важные типы данных, которыми вы с высокой вероятностью будете использовать каждый день. Они называются списки, кортежи и словари. Цель данной статьи познакомить вас с ними поближе. Они не очень сложные, так что надеюсь, вы научитесь, как использовать их по назначению. После освоения этих трех типов данных, в сочетании со строками из предыдущей статьи, вы ощутимо продвинетесь в изучении Python. Вам понадобится каждый из этих четырех кирпичиков для создания 99% приложений.
Списки
Списки Python схожи с массивами в других языках. В Python, пустой список может быть создан следующим образом:
Как вы видите, вы можете создать список при помощи квадратных скобок, или при помощи встроенного инструмента Python – list. Список состоит из таких элементов, как строки, цифры, объекты и смеси типов. Давайте взглянем на несколько примеров:
Первый список содержит 3 числа, второй 3 строки, третий содержит смесь. Вы также можете создавать списки списков, вот так:
В какой-то момент вам может понадобиться скомбинировать два списка вместе. Первый способ сделать это – при помощи метода extend:
Немного проще будет просто добавить два списка вместе.
Да, это именно настолько просто. Вы также можете сортировать список. Давайте уделим немного времени и взглянем на то, как это делается:
Получилось. Видите? Давайте взглянем на еще один пример, чтобы закрепить результат:
В этом примере мы попытались назначить сортированный список переменной. Однако, когда вы вызываете метод sort() в списке, он сортирует список на месте. Так что если вы попробуете назначить результат другой переменной, тогда возникнет объект None, который аналогичен объекту Null в других языках. Таким образом, когда вам нужно отсортировать что-нибудь, просто помните, что вы сортируете на месте, и вы не можете назначить объект другой переменной.
Вы можете разрезать список также, как вы делаете это со строкой:
Данный код выдает список из трех первых элементов.
Кортежи
Кортеж похож на список, но вы создаете его с круглыми скобками, вместо квадратных. Вы также можете использовать встроенный инструмент для создания кортежей. Разница в том, что кортеж неизменный, в то время как список может меняться. Давайте взглянем на несколько примеров:
Данный код демонстрирует способ создания кортежа с пятью элементами. Также он говорит нам о том, что мы можете делать нарезку кортежей. Однако, вы не можете сортировать кортеж! Последние два примера показывают, как создавать кортеж при помощи ключевого слова tuple (которое и переводится как «кортеж»). Первый код просто создает пустой кортеж, в то время как во втором примере кортеж содержит три элемента. Обратите внимание на то, что в нем есть список. Это пример конвертации. Мы можем менять или конвертировать объект из одного типа данных в другой. В нашем случае, мы конвертируем список в кортеж. Если вы хотите превратить кортеж abc обратно в список, вы можете сделать это следующим образом:
Для повторения, данный код конвертирует кортеж в список при помощи функции list.
Есть вопросы по Python?
На нашем форуме вы можете задать любой вопрос и получить ответ от всего нашего сообщества!
Telegram Чат & Канал
Вступите в наш дружный чат по Python и начните общение с единомышленниками! Станьте частью большого сообщества!
Одно из самых больших сообществ по Python в социальной сети ВК. Видео уроки и книги для вас!
Словари
Словарь Python, по большей части, представляет собой хэш-таблицу. В некоторых языках, словари могут упоминаться как ассоциативная память, или ассоциативные массивы. Они индексируются при помощи ключей, которые могут быть любого неизменяемого типа. Например, строка или число могут быть ключом. Вам обязательно стоит запомнить тот факт, что словарь – это неупорядоченный набор пар ключ:значение, и ключи обязательно должны быть уникальными.
Покупка ботов Вконтакте на сервисе doctorsmm обойдется Вам от 179 рублей за 1000 добавленных страниц. Кроме того, Вы самостоятельно можете выбрать не только требуемое количество ресурса, но и скорость его поступления, чтобы максимально приблизить процесс к естественному приросту. Также на сайте действуют внушительные оптовые скидки. Торопитесь сделать заказ, время предложений может быть ограничено!
Вы можете получить список ключей путем вызова метода keys() в том или ином словаря. Чтобы проверить, присутствует ли ключ в словаре, вы можете использовать ключ in в Python. В некоторых старых версиях Python (с 2.3 и более ранних, если быть точным), вы увидите ключевое слово has_key, которое используется для проверки наличия ключа в словаре. Данный ключ является устаревшим в Python 2.X, и был удален, начиная с версии 3.Х. Давайте попробуем создать наш первый словарь:
List vs. tuple vs. set vs. dictionary in Python
Python Collections are used to store data, for example, lists, dictionaries, sets, and tuples, all of which are built-in collections.
Lists | Tuples | Sets | Dictionaries |
---|---|---|---|
A list is a collection of ordered data. | A tuple is an ordered collection of data. | A set is an unordered collection. | A dictionary is an unordered collection of data that stores data in key-value pairs. |
Various ways to create a list
list1=[1,4,"Gitam",6,"college"]list2=[] # creates an empty listlist3=list((1,2,3))print(list1)print(list2)print(list3)
Various ways to create a tuple
tuple1=(1,2,"college",9)tuple2=() # creates an empty tupletuple3=tuple((1,3,5,9,"hello"))print(tuple1)print(tuple2)print(tuple3)
How to create a set
set1=set2=print(set1)print(set2)How to create a dictionary
dict1=dict2=<> # empty dictionarydict3=dict()print(dict1)print(dict2)print(dict3)The fundamental distinction that Python makes on data is whether or not the value of an object changes. An object is mutable if the value can change; else, the object is immutable.
Lists are mutable. Tuples are immutable. Sets are mutable and have no duplicate elements. Dictionaries are mutable and keys do not allow duplicates. Lists are declared with square braces. Tuples are enclosed within parenthesis. Sets are represented in curly brackets. Dictionaries are enclosed in curly brackets in the form of key-value pairs. list1=["hello",1,4,8,"good"]print(list1)list1[0]="morning" # assigning values ("hello" is replaced with "morning")print(list1)print(list1[4])print(list1[-1]) # list also allow negative indexingprint(list1[1:4]) # slicinglist2=["apple","mango","banana"]print(list1+list2) # list concatenationtuple1=("good",1,2,3,"morning")print(tuple1)print(tuple1[0]) # accessing values using indexing#tuple1[1]="change" # a value cannot be changed as they are immutabletuple2=("orange","grapes")print(tuple1+tuple2) # tuples can be concatenatedtuple3=(1,2,3)print(type(tuple3))set1=print(set1)# set1[0] sets are unordered, so it doesnot support indexingset2= # sets doesnot allow duplicate valuesprint(set2)dict1=print(dict1.keys()) # all the keys are printeddict1.values() # all the values are printeddict1["key1"]="replace_one" # value assigned to key1 is replacedprint(dict1)print(dict1["key2"])Python has a set of built-in methods that are used on these collections. They are:-
The append() method adds a single item at the end of the list without modifying the original list. An element cannot be added to the tuple as it is immutable. The set add() method adds a given element to a set. The update() method updates the dictionary with the specified key-value pairs The pop() method removes the item at the given index from the list and returns it. Tuples are immutable. The pop() method removes a random item from the set. The pop() method removes the specified item from the dictionary. list1=["apple","banana","grapes"]list1.append("strawberry") # strawberry is added to the listprint(list1)list1.pop() # removes the last element from the listprint(list1)list1.pop()print(list1)tuple1=(1,2,3,4)# tuple1.pop() tuple cannot be modified# tuple1.append() tuple cannot be modifiedprint(tuple1)set1=set1.add("shelter") # adds an element to the set at random positionprint(set1)set1.add("clothes")print(set1)set1.pop() # removes random element from the setprint(set1)dict1=dict1.update()print(dict1)dict1.update() # updates the dictionary at the endprint(dict1)dict1.pop("veg2")print(dict1)
The sort() method sorts the elements of a given list in a specific ascending or descending order. Though tuples are ordered, the elements cannot be sorted. Elements in the set cannot be sorted as they are unordered. sorted() method is used to sort the keys in the dictionary by default. index() searches for a given element from the start of the list and returns the lowest index where the element appears. Searches the tuple for a specified value and returns the position of where it was found. The index of a particular element is not retrieved as they are unordered. The get() method returns the value of the item with the specified key. list1=[1,5,3,9,"apple"]print(list1.index(9)) # returns the index value of the particular elementlist2=[2,7,8,7]print(list2.index(7)) # returns the index value of the element at its first occurenceprint(list2.index(7,2)) # returns the index value of the element from the particular start position giventuple1=(1,3,6,7,9,10)print(tuple1.index(6))print(tuple1.index(9))set1=# set1.index() will throw an error as they are unordereddict1=# dict1.index("key1") will throw an errorprint(dict1.get("key1"))
The count() method returns the number of times the specified element appears in the list. The count() method returns the number of times a specified value occurs in a tuple. There are no count() methods in sets as they do not allow any duplicates. The count() method is not defined in the dictionary. The reverse() method reverses the elements of the list. The reverse() method is not defined in tuples, as they are unchangeable The sets are unordered, which refrains from applying the reverse() method The elements cannot be reversed, as the items in the dictionary are in the form of key-value pairs Python 101: Interactively learn how to program with Python 3
Clean Architecture in Python
Python for Scientists and Engineers