Абстрактный способ взглянуть на это - увидеть, что вы можете устранить из каждого дома. Вы знаете, что вы можете слышать самый громкий шум между домами, что означает, что один или оба дома по обе стороны от шума могут содержать этого производителя шума. Таким образом, в форме абзаца:
Между 1 & amp; 2 - это музыка, так что 1 и 2 могут содержать подростка, и это все, что мы знаем.
Между 2 & amp; 3 плачет, поэтому мы знаем, что 2 не содержит ничего более громкого, чем плач (музыка), поэтому 2 не может содержать T, поэтому 1 должен содержать Teen.
Между 3 & amp; 4 шуршит, поэтому мы знаем, что 3 или 4 могут содержать дилера. Теперь мы также знаем, что в 3 не существует ничего более громкого, чем шелест, поэтому в 2 должен содержаться ребенок.
Между 4 и 5 - это музыка, так что теперь у нас проблема. Мы знаем, что 5 должно содержать подростка, иначе музыка была бы громче, чем шорох, и мы бы не услышали шелест между 3 и 3. 4. Однако теперь все, что мы знаем о 3 & amp; 4 заключается в том, что они могут содержать что-либо столь же тихое или более тихое, чем Дилер, а также то, что по крайней мере один должен содержать дилера. Таким образом, эти комбинации [A, D], [D, D], [D, A].
Это дает нам набор окончательных ответов [T, B, A, D, T] или [T, B, D, D, T] или [T, B, D, A, T]
Используйте встроенное + оператор для добавления непорядковых номеров к диапазону.
for x in range(750, 765) + [769, 770, 774]: print x
Существует два способа сделать это.
>>> for x in range(5, 7) + [8, 9]: print x
...
5
6
8
9
>>> import itertools
>>> for x in itertools.chain(xrange(5, 7), [8, 9]): print x
...
5
6
8
9
itertools.chain () намного превосходящим, так как он позволяет Вам использовать произвольный iterables, а не просто перечисляет и перечисляет. Это также более эффективно, не требуя копирования списка. И это позволяет Вам использовать xrange, который Вы должны когда цикличное выполнение.
Другие ответы на этой странице будут служить Вам хорошо. Просто быстрое примечание это в Python3.0, range
итератор (как xrange, был в Python2.x... xrange, не стал в 3,0). При попытке сделать это в Python 3.0, несомненно, создадут список из итератора диапазона прежде, чем сделать дополнение:
for x in list(range(750, 765)) + [769, 770, 774]: print(x)
Вы ищущий это:
mylist = range(750, 765)
mylist.extend([769, 770, 774])