Как использовать этот список в качестве параметра для этой функции? - PullRequest
2 голосов
/ 04 мая 2019

Я новичок в Python и использую его для написания приложения Spotify с помощью Spotipy. По сути, у меня есть словарь треков под названием topTracks. Я могу получить доступ к треку и его названию / идентификатору и прочему с помощью

topSongs['items'][0]
topSongs['items'][3]['id']
topSongs['items'][5]['name']

Итак, я пытаюсь использовать функцию:

recommendations(seed_artists=None, seed_genres=None, seed_tracks=None, limit=20, country=None, **kwargs)

С этой функцией я пытаюсь использовать seed_tracks, для которого требуется список идентификаторов дорожек. Поэтому в идеале я хочу ввести topSongs ['items'] [0] ['id'], topSongs ['items'] [1] ['id'], topSongs ['items'] [2] ['id'] и т.д. Как бы я это сделал? Я читал об операторе *, но я не уверен, как я могу использовать это или применимо ли это здесь.

1 Ответ

3 голосов
/ 04 мая 2019

Вы можете попробовать что-то вроде показанного ниже.

ids = [item["id"] for item in topSongs["items"]]

Здесь я только что сформировал простой пример.

>>> topSongs = {
...     "items": [
...         {
...             "id": 1,
...             "name": "Alejandro"
...         },
...         {
...             "id": 22,
...             "name": "Waiting for the rights"
...         }
...     ]
... }
>>> 
>>> seed_tracks = [item["id"] for item in topSongs["items"]]
>>> 
>>> seed_tracks
[1, 22]
>>> 

Примечание об использовании * оператора "

* оператор используется в этом случае, но для этого вам нужно будет сформировать список / кортеж, содержащий список данных, которые получает функция. Что-то вроде

Вы должны сформировать все переменные, такие как seed_tracks выше.

data = [seed_artists, seed_genres, seed_tracks, limit, country]   

И, наконец,

recommendations(*data)

Примечание об использовании ** оператора "

А если вы хотите использовать оператор **, данные будут выглядеть как

data = {"seed_artists": seed_artists, "seed_genres": seed_genres, "seed_tracks": seed_tracks, "limit": limit, "country": country} 

Наконец,

recommendations(**data)
...