Получение первых элементов за ряд во множестве в Пайтоне?

Скажем, у меня есть множество Кортежей, s, в форме:

s = ((1, 23, 34),(2, 34, 44), (3, 444, 234))

и я хочу возвратить другой Кортеж, t, состоя из первого элемента за ряд:

t = (1, 2, 3)

Который был бы наиболее эффективным способом сделать это? Я мог, конечно, просто повторить через s, но являюсь там каким-либо обманщиком способ сделать его?

12
задан c00kiemonster 13 January 2010 в 04:31
поделиться

3 ответа

Нет.

t = tuple(x[0] for x in s)
23
ответ дан 2 December 2019 в 05:15
поделиться
В

LingPipe имеется учебное пособие по этому вопросу, и они связаны со ссылками. Они не обсуждают математику, но их исходный код открыт, так что вы можете заглянуть в их исходный код.

Я не могу сказать, что знаю, что делает Amazon, потому что они, вероятно, держат это в секрете (или, по крайней мере, просто не удосужились никому рассказать).

-121--1454511-

Библиотеку журналов можно переопределить собственным классом журнала, специально переопределить функцию write_log ($ level = 'error', $ msg, $ php _ error = FALSE) . Исходный код библиотеки журналов можно просмотреть в файле system/libraries/Log.php . Для создания собственной библиотеки журналов, переопределяющей поведение по умолчанию, см. на этой странице .

Создайте файл system/application/libraries/MY _ Log.php :

class MY_Log extends CI_Log {

  function MY_Log()
  {
    parent::CI_Log();
  }
  //your code
  //...
  function write_log($level = 'error', $msg, $php_error = FALSE)
  {
  //...
  }
}
-121--3959592-

Метод понимания списка, заданный Игнасио, является самым чистым.

Просто для ударов можно также сделать:

zip(*s)[0]

* s расширяет s в список аргументов. Таким образом, это эквивалентно

zip( (1, 23, 34),(2, 34, 44), (3, 444, 234))

И застежкам -молниям возвращает n кортежей, где каждый кортеж содержит nth предметов из каждого списка.

5
ответ дан 2 December 2019 в 05:15
поделиться

Необходимо просмотреть файл buildlog.htm, указанный в выходных данных сборки. Это даст вам больше (полезной) информации о том, что произошло.

-121--4780372-

Корпорация Майкрософт обвиняет в аналогичном случае антивирус .

-121--4780373-
import itertools
s = ((1, 23, 34),(2, 34, 44), (3, 444, 234))
print(next(itertools.izip(*s)))

itertools.izip возвращает итератор. Функция next возвращает следующий (и в данном случае первый) элемент из итератора.

В Python 2 .x застежки -молнии возвращает кортеж. izip использует меньше памяти, так как итераторы не генерируют свое содержимое до необходимости.

В Python 3 застежек -молний возвращает итератор.

1
ответ дан 2 December 2019 в 05:15
поделиться
Другие вопросы по тегам:

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