Конкатенация генератора

Решение к проблеме получило WA (неправильный ответ), затем я изменил один из int на long long int и дал AC (принять ) [/ д2]. Раньше я пытался сделать long long int += int * int, и после того, как исправил его до long long int += long long int * int. Googling я придумал,

1. Арифметические преобразования

Условия преобразования типов:

Условия Met ---> Конверсия

  • Любой операнд имеет тип длинный двойной. ---> Другой операнд преобразуется в тип long double.
  • Предыдущее условие не выполнено, и оба операнда имеют тип double. ---> Другой операнд преобразуется в тип double.
  • Предварительные условия не выполняются и оба операнда имеют тип float. ---> Другой операнд преобразуется в тип float.
  • Предварительные условия не выполняются (ни один из операндов не имеет типов с плавающей запятой). ---> Интегральные аксиомы выполняются в операндах следующим образом: Если любой из операндов имеет тип unsigned long, другой операнд преобразуется в тип unsigned long. Если предыдущее условие не выполнено, и если любой из операндов имеет тип long, а другой типа unsigned int, оба операнда преобразуются в тип unsigned long. Если предыдущие два условия не выполняются, и если один из операндов имеет тип long, то другой операнд преобразуется в тип long. Если предыдущие три условия не выполняются, и если один из операндов имеет тип unsigned int, другой операнд преобразуется в тип unsigned int. Если ни одно из предыдущих условий не выполняется, оба операнда преобразуются в тип int.

2. Целочисленные правила преобразования

  • Целочисленные акции:

Целочисленные типы, меньшие, чем int, продвигаются, когда на них выполняется операция. Если все значения исходного типа могут быть представлены как int, значение меньшего типа преобразуется в int; в противном случае он преобразуется в unsigned int. Целочисленные акции применяются как часть обычных арифметических преобразований к некоторым выражениям аргументов; операнды унарных +, - и ~ операторов; и операнды операторов сдвига.

  • Целочисленный ранг конверсии: ни один из двух подписанных целочисленных типов не должен иметь одинаковый ранг, даже если они имеют одинаковое представление. Ранг целочисленного типа со знаком должен быть больше ранга любого знакового целочисленного типа с меньшей точностью. Ранг long long int должен быть больше ранга long int, который должен быть больше ранга int, который должен быть больше ранга short int, который должен быть больше ранга signed char. Ранг любого беззнакового целочисленного типа должен быть равен рану соответствующего знакового целочисленного типа, если таковой имеется. Ранг любого стандартного целочисленного типа должен быть больше ранга любого расширенного целочисленного типа с одинаковой шириной. Ранг char должен быть равен рангам signed char и unsigned char. Ранг любого расширенного целочисленного типа со знаком, связанного с другим расширенным типом со знаком целого типа с той же точностью, определяется реализацией, но по-прежнему подчиняется другим правилам определения целочисленного ранга преобразования. Для всех целых типов T1, T2 и T3, если T1 имеет больший ранг, чем T2, а T2 имеет больший ранг, чем T3, то T1 имеет больший ранг, чем T3.
  • Обычные арифметические преобразования: если оба операнда имеют один и тот же тип, дальнейшее преобразование не требуется. Если оба операнда имеют один и тот же целочисленный тип (подписанный или без знака), операнд с типом ранга меньшего целочисленного преобразования преобразуется в тип операнда с большим рангом. Если операнд, имеющий целочисленный тип без знака, имеет ранг, больший или равный рангам другого операнда, операнд со знаком целочисленного типа преобразуется в тип операнда с целым числом без знака. Если тип операнда со знаком целочисленного типа может представлять все значения типа операнда с целым типом без знака, операнд с целым типом без знака преобразуется в тип операнда со знаком целочисленного типа. В противном случае оба операнда преобразуются в целочисленный тип без знака, соответствующий типу операнда со знаком целочисленного типа. Конкретные операции могут добавлять или изменять семантику обычных арифметических операций.

-3
задан Antispam Antispam 18 January 2019 в 09:55
поделиться

1 ответ

Не уверен, что я полностью понял ваш вопрос, но я думаю, это то, что вы ищете:

sum([[item for item in generator] for generator in list_of_gens], [])

Это берет каждый генератор и составляет из него список, а затем использует сумму для объединения эти списки.

0
ответ дан Andrew McDowell 18 January 2019 в 09:55
поделиться
Другие вопросы по тегам:

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