簡體   English   中英

Python 枚舉還是別的什么?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM