Как зайти в Даркнет?!
25th January, 01:11
8
0
Как в tkinter из поля ввода Entry получить значение в одну переменную и обновить строку кнопкой, затем получить ещё одно введённое значение и затем сложить их. Ниже пример кода
21st July, 19:00
899
0
Программа, которая создает фейковые сервера в поиске игровых серверов CS 1.6 Steam
21st March, 17:43
952
0
Очень долго работает Update запрос Oracle
27th January, 09:58
916
0
не могу запустить сервер на tomcat HTTP Status 404 – Not Found
21st January, 18:02
907
0
Где можно найти фрилансера для выполнения поступающих задач, на постоянной основе?
2nd December, 09:48
942
0
Разработка мобильной кроссплатформенной военной игры
16th July, 17:57
1727
0
период по дням
25th October, 10:44
3957
0
Пишу скрипты для BAS только на запросах
16th September, 02:42
3722
0
Некорректный скрипт для закрытия блока
14th April, 18:33
4614
0
прокидывать exception в блоках try-catch JAVA
11th March, 21:11
4382
0
Помогите пожалуйста решить задачи
24th November, 23:53
6087
0
Не понимаю почему не открывается детальное описание продукта
11th November, 11:51
4352
0
Нужно решить задачу по программированию на массивы
27th October, 18:01
4400
0
Метода Крамера С++
23rd October, 11:55
4309
0
помогите решить задачу на C++
22nd October, 17:31
4002
0
Помогите решить задачу на python с codeforces
22nd October, 11:11
4492
0
Python с нуля: полное руководство для начинающих
18th June, 13:58
2599
0
Python: в чем разница между (1,2,3) и [1,2,3], и когда я должен использовать каждый?
Во многих местах (1,2,3) (кортеж) и [1,2,3] (список) могут использоваться взаимозаменяемо.
Когда я должен использовать тот или другой, и почему?
От Python FAQ :
Списки и кортежи, хотя и схожи во многих отношениях, обычно используются принципиально по-разному. Кортежи можно рассматривать как нечто подобное записям Pascal или структурам C; это небольшие коллекции связанных данных, которые могут быть разных типов и работать как группа. Например, декартову координату целесообразно представить в виде кортежа из двух или трех чисел.
С другой стороны, списки больше похожи на массивы в других языках. Они, как правило, содержат различное количество объектов, все из которых имеют один и тот же тип и которые работают на one-by-one.
Обычно по соглашению вы не выбрали бы список или кортеж только на основе его (im)изменчивости. Вы выбрали бы Кортеж для небольших коллекций совершенно разных фрагментов данных, в которых полномасштабный класс был бы слишком тяжелым, и список для коллекций любого разумного размера, где у вас есть однородный набор данных.
Кортежи-это quick\flexible способ создания составных типов данных. Списки-это контейнеры для, ну, списков объектов.
Например, вы можете использовать Список для хранения списка сведений об ученике в классе.
Каждая деталь студента в этом списке может быть 3-кортежем, содержащим их номер рулона, имя и тестовый балл.
`[(1,'Mark',86),(2,'John',34)...]`
Кроме того, поскольку кортежи являются неизменяемыми, их можно использовать в качестве ключей в словарях.
Понятие кортежей очень выразительно:
Прагматически они отлично подходят для упаковки и распаковки ценностей (
x,y=coord).В сочетании со словарями (hash таблицами) они допускают формы отображения, которые в противном случае потребовали бы много уровней ассоциации. Например, рассмотрим маркировку того,что (x, y) было найдено.
// PHP if (!isset($found[$x])) { $found[$x] = Array(); $found[$x][$y] = true; } else if (!isset($found[$x][$y])) { $found[$x][$y] = true; } # Python found[(x,y)] = True # parens added for clarityСписки следует использовать с расчетом на операции над их содержанием (отсюда и различные упоминания о неизменяемости). Один из них захочет всплывать, нажимать, соединять, нарезать, искать, вставлять до, вставлять после и т. д. Со списком.
Кортежи должны быть низкоуровневым представлением объекта, где выполняются простые сравнения или операции, такие как извлечение n-го элемента или n элементов предсказуемым образом, например, в приведенном выше примере координат.
Наконец, списки не являются хэшируемыми, поэтому тип отображения, выполняемый со словарями (таблицы hash в Perl, ассоциативные массивы в PHP), должен быть выполнен с кортежами.
Вот простой пример кортежей и словарей, наконец-то вместе взятых:
""" couple is a tuple of two people doesLike is a dictionary mapping couples to True or False """ couple = "john", "jane" doesLike = dict() doesLike[couple] = True doesLike["jane", "john"] = False # unrequited love :'(
Всякий раз, когда мне нужно передать коллекцию элементов в функцию, если я хочу, чтобы функция не изменяла передаваемые значения, я использую кортежи.
В противном случае, если я хочу иметь функцию для изменения значений, я использую list.
Всегда, если вы используете внешние библиотеки и вам нужно передать в функцию список значений и вы не уверены в целостности данных, используйте кортеж.
Как уже упоминалось ранее, списки и кортежи являются контейнерами, которые можно использовать для хранения объектов python. Списки являются расширяемыми, и их содержимое может изменяться по назначению, с другой стороны, кортежи являются неизменяемыми.
Кроме того, списки не могут использоваться в качестве ключей в словаре, в то время как кортежи могут.
откройте консоль и запустите python. Попробовать это:
>>> list = [1, 2, 3]
>>> dir(list)
['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__delsli
ce__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getit
em__', '__getslice__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__',
'__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__r
educe__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__'
, '__setitem__', '__setslice__', '__sizeof__', '__str__', '__subclasshook__',
'append', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']
Как вы можете видеть последний на последней строке списка есть следующие методы: 'append', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort'
Теперь попробуйте то же самое для кортежа:
>>> tuple = (1, 2, 3)
>>> dir(tuple)
['__add__', '__class__', '__contains__', '__delattr__', '__doc__', '__eq__', '__
format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__get
slice__', '__gt__', '__hash__', '__init__', '__iter__', '__le__', '__len__', '__
lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__'
, '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'count', 'index']
Здесь отображаются только методы 'count' и 'index' из списка.
Это связано с тем, что кортежи являются неизменяемыми и не поддерживают никаких модификаций. Вместо этого они проще и быстрее во внутренней реализации.
(1,2,3) и [1,2,3] могут использоваться взаимозаменяемо в редких случаях.
Так что (1,2,3) является кортежем и является неизменным. Любые изменения, которые вы хотите внести, необходимо перезаписать объект.
[1,2,3] - это список, элементы которого можно добавлять и удалять.
Список имеет больше возможностей, чем кортеж.