簡體   English   中英

Python:遍歷列表,將空白輸出到第二個列表,然后按順序調用

[英]Python: Iterate through list, output blank to second list to then call in order

感謝您抽出寶貴時間幫助我。 談到Python時仍然是一個菜鳥,但我慢慢地到了那里。

背景故事:基本上我將配置從PBX轉移到CSV文件然后遷移到另一個系統。

我被困的地方:目前我有一個擴展號碼列表,然后是語音郵件配置。 並非每部手機都有語音郵件電子郵件地址,因此目前我正在做的是比較數據以查看當前分機是否有關聯的電子郵件。 由於數據的導出方式,我將所有內容存儲到列表中,所有這些都需要排隊。

我需要它做什么:我需要將電子郵件很好地輸出到列表中並使其與擴展列表對齊。 例如:

list_extension_email = ['','test @ test','','','test2 @ test']

list_extension_numbers = ['1000','401','402','403','404']

碼:

list_extension_voicemail = ['401, test@test', '404, test2@test']
list_extension_numbers = ['1000', '401', '402', '403', '404']
list_extension_email = []
line_variable = 0
blank_voicemails = 0

for extension in list_extension_numbers:
    extension_number = list_extension_numbers[line_variable]
    blank_line = " "
    for extension_voicemail in list_extension_voicemail:
      extension_and_voicemail = extension_voicemail.split(',')
      if extension_and_voicemail[0] in extension_number:
        while blank_voicemails != 0:
          list_extension_email.append(blank_line)
          blank_voicemails-=1
        list_extension_email.append(extension_and_voicemail[1])
        blank_voicemails = 0
      else:
        blank_voicemails+=1


extension_email = list_extension_email[line_variable]

對不起,如果這是非常模糊和非描述性的,我願意聽取任何解決方案。 再一次,謝謝大家

我認為這樣做你想要的:

list_extension_voicemail = ['401, test@test', '404, test2@test']
list_extension_numbers = ['1000', '401', '402', '403', '404']

# Make list of empty emails
list_extension_email = [''] * len(list_extension_numbers)
# Make a dict that gives you the list index for each number
number_idx = {number: idx for idx, number in enumerate(list_extension_numbers)}
for number_email in list_extension_voicemail:
    # Split by comma
    number, email = number_email.split(',')
    # Remove extra spaces
    number = number.strip()
    email = email.strip()
    # Set email in list if number exists
    if number in number_idx:
        list_extension_email[number_idx[number]] = email

# Print result
print('list_extension_email =', list_extension_email)
print('list_extension_numbers =', list_extension_numbers)

輸出:

list_extension_email = ['', 'test@test', '', '', 'test2@test']
list_extension_numbers = ['1000', '401', '402', '403', '404']

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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