[英]Python enumerating or something else?
我從遵循此示例的 json object 開始:
[
{
"url": "https://www.stackoverflow_greatquestions.com",
"pages": 1
},
{
"url": "https://www.stackoverflow_not-so-greatquestions.com",
"pages": 3
}
]
我想要完成的是打印等於我這樣做的頁數的 url:
url_list = []
for x in json:
for y in range(x['pages']):
url_list.append(x['url'])
我快到了,這是按照我的要求打印出網址,但我還想根據頁面的值對 output 進行編號。
所以我的最終結果是這樣的:
"https://www.stackoverflow_greatquestions.com", 1,
"https://www.stackoverflow_not-so-greatquestions.com", 1,
"https://www.stackoverflow_not-so-greatquestions.com", 2,
"https://www.stackoverflow_not-so-greatquestions.com", 3
我覺得 enumerate 在這里會很有用,但我似乎無法理解如何實現它。 我所能做的就是給整個列表編號,正如你從上面看到的那樣,這不是我想要完成的。
提前謝謝你,布賴恩
這是一種方法。 沒什么特別的,只是一個for
循環和一個依賴於'pages'
鍵的range
。
>>> data = [
...: {
...: "url": "https://www.stackoverflow_greatquestions.com",
...: "pages": 1
...: },
...: {
...: "url": "https://www.stackoverflow_not-so-greatquestions.com",
...: "pages": 3
...: }
...: ]
>>>
>>> for d in data:
...: for i in range(1, d['pages'] + 1):
...: print(d['url'], i)
...:
https://www.stackoverflow_greatquestions.com 1
https://www.stackoverflow_not-so-greatquestions.com 1
https://www.stackoverflow_not-so-greatquestions.com 2
https://www.stackoverflow_not-so-greatquestions.com 3
編輯 - 建立一個列表:
>>> result = [(d['url'], i) for d in data for i in range(1, d['pages'] + 1)]
>>> result
[('https://www.stackoverflow_greatquestions.com', 1),
('https://www.stackoverflow_not-so-greatquestions.com', 1),
('https://www.stackoverflow_not-so-greatquestions.com', 2),
('https://www.stackoverflow_not-so-greatquestions.com', 3)]
這將正常工作:
url_list = []
for x in json:
for y in range(x['pages']):
url_list.append(x['url']+', '+str(y+1))
print(url_list)
Output
['https://www.stackoverflow_greatquestions.com, 1', 'https://www.stackoverflow_not-so-greatquestions.com, 1', 'https://www.stackoverflow_not-so-greatquestions.com, 2', 'https://www.stackoverflow_not-so-greatquestions.com, 3']
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.