Постсборка Visual Studio - изменяющийся на диск решения

Понятие кортежей очень выразительно:

  • Практично, они являются великими для упаковки и распаковки значений (x,y=coord).

  • В сочетании со словарями (хэш-таблицы), они позволяют формы отображения, которое иначе потребовало бы многих уровней ассоциации. Например, рассмотрите маркировку, которая (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'th элемента или n элементов предсказуемым способом, таких как пример координат, данный ранее.

  • Наконец, списки не hashable, таким образом, тип отображения сделанного со словарями (хэш-таблицы в 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 :'(
    
10
задан Nathan Ridley 21 November 2009 в 16:51
поделиться