Приходите дубликаты в списке предметов? [Дубликат]

Angular1

Для людей, которые используют AngularJS , может справиться с этой ситуацией, используя Promises.

Здесь it говорит,

Обещания могут использоваться для отключения асинхронных функций и позволяют объединять несколько функций вместе.

Вы можете найти приятное объяснение здесь .

Пример, найденный в docs , упомянутом ниже.

  promiseB = promiseA.then(
    function onSuccess(result) {
      return result + 1;
    }
    ,function onError(err) {
      //Handle error
    }
  );

 // promiseB will be resolved immediately after promiseA is resolved 
 // and its value will be the result of promiseA incremented by 1.

Angular2 and Later

In Angular2, посмотрите на следующий пример, но его рекомендовал использовать Observables с Angular2.

 search(term: string) {
     return this.http
  .get(`https://api.spotify.com/v1/search?q=${term}&type=artist`)
  .map((response) => response.json())
  .toPromise();

}

Вы можете использовать это таким образом,

search() {
    this.searchService.search(this.searchField.value)
      .then((result) => {
    this.result = result.artists.items;
  })
  .catch((error) => console.error(error));
}

См. здесь оригинал . Но TypScript не поддерживает native es6 Promises , если вы хотите его использовать, для этого вам может понадобиться плагин.

Кроме того, здесь представлены обещания spec определите здесь.

5
задан quarters 29 May 2015 в 05:45
поделиться

6 ответов

Использовать простые для цикла и " ".join() сопоставление каждого int во вложенном списке с str с map().

Пример:

>>> ys = [[1, 2, 3], [4, 5, 6], [7, 8, 9, 10]]
>>> for xs in ys:
...     print(" ".join(map(str, xs)))
... 
1 2 3
4 5 6
7 8 9 10

Разница здесь в том, что мы можем поддерживать произвольные длины внутренних списков.


Причина, по которой ваш пример не работал должным образом, потому что ваш внутренний цикл выполняет итерацию по каждому элементу под-списка; / g3]

for r in A:  # r = [1, 2, 3]
    for t in r:  # t = 1 (on first iteration)
        print(t,)
    print

И print() по умолчанию печатает символы новой строки в конце, если вы не используете: print(end="") Я считаю, что если вы используете Python 2.x print t,, это сработает. Например:

>>> ys = [[1, 2, 3], [4, 5, 6], [7, 8, 9, 10]]
>>> for xs in ys:
...     for x in xs:
...             print x,
...     print
... 
1 2 3
4 5 6
7 8 9 10

Но print(x,) не будет работать так, как вы это предполагали; Python 2.x или 3.x

5
ответ дан James Mills 26 August 2018 в 03:38
поделиться
for r in A:
    print '%d %d %d' % tuple(r)
2
ответ дан dbliss 26 August 2018 в 03:38
поделиться

На тот же вопрос ответил Джим Фасаракис Хиллиард в . Распечатайте список списков в отдельных строках .

В Python 3.x мы можем использовать:

A = [[1, 2, 3], [2, 3, 4], [4, 5, 6]]

for i in A:
        print(*i)

И соответствующий выход:

1 2 3
2 3 4
4 5 6
1
ответ дан J.S. 26 August 2018 в 03:38
поделиться

print без конечной запятой будет печатать символ новой строки.

for r in A:
    for t in r:
        print t,
    print
1
ответ дан lanpa 26 August 2018 в 03:38
поделиться

Метод-1:

Мы можем использовать функцию списка и .join().

>>> my_list = [[1, 2, 3], [2, 3, 4], [4, 5, 6]]

>>> for item in my_list:
        print ' '.join(str(x) for x in item)

1 2 3
2 3 4
4 5 6

Метод-2:

>>> my_list = [[1, 2, 3], [2, 3, 4], [4, 5, 6]]

>>> for item in my_list:
        for x in item:
            print x,
        print 

1 2 3
2 3 4
4 5 6

Внутренний print с запятой гарантирует, что элементы внутреннего списка будут напечатаны в одной строке. Внешний print гарантирует, что для следующего внутреннего списка он печатает в следующей строке.

2
ответ дан Rahul Gupta 26 August 2018 в 03:38
поделиться

Если вы находитесь в Python 3.x:

print(*('{} {} {}'.format(*r) for r in A), sep='\n')

или:

print(*('%d %d %d' % tuple(r) for r in A), sep='\n')

Если нет, вы можете импортировать функцию печати Python 3.x из папки __future__.

0
ответ дан Shashank 26 August 2018 в 03:38
поделиться
Другие вопросы по тегам:

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