Как я могу добавить непорядковые номера к диапазону?

Абстрактный способ взглянуть на это - увидеть, что вы можете устранить из каждого дома. Вы знаете, что вы можете слышать самый громкий шум между домами, что означает, что один или оба дома по обе стороны от шума могут содержать этого производителя шума. Таким образом, в форме абзаца:

Между 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]

8
задан adam 24 March 2009 в 17:28
поделиться

4 ответа

Используйте встроенное + оператор для добавления непорядковых номеров к диапазону.

for x in range(750, 765) + [769, 770, 774]: print x
23
ответ дан 5 December 2019 в 04:33
поделиться

Существует два способа сделать это.

>>> 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, который Вы должны когда цикличное выполнение.

16
ответ дан 5 December 2019 в 04:33
поделиться

Другие ответы на этой странице будут служить Вам хорошо. Просто быстрое примечание это в Python3.0, range итератор (как xrange, был в Python2.x... xrange, не стал в 3,0). При попытке сделать это в Python 3.0, несомненно, создадут список из итератора диапазона прежде, чем сделать дополнение:

for x in list(range(750, 765)) + [769, 770, 774]: print(x)
9
ответ дан 5 December 2019 в 04:33
поделиться

Вы ищущий это:

mylist = range(750, 765)
mylist.extend([769, 770, 774])
3
ответ дан 5 December 2019 в 04:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: