Python:遍历列表,将空白输出到第二个列表,然后按顺序调用
谢谢你抽出时间来帮我。说到Python,我仍然是个傻瓜,但我正在慢慢地做到这一点 后台故事:基本上,我将配置从PBX传输到CSV文件,然后迁移到另一个系统 我陷入困境的地方:目前我有一个分机号码和语音邮件配置的列表。不是每部手机都有语音邮件电子邮件地址,所以我现在做的是比较数据,看看当前分机是否有相关的电子邮件。由于数据的导出方式,我将所有内容都存储到一个列表中,所有内容都需要对齐 我需要它做什么:我需要将电子邮件很好地输出到列表中,并将其与扩展列表对齐。例如: 列表\扩展\电子邮件=['','test@test', ' ', ' ', 'test2@test“] 列表扩展号=['1000'、'401'、'402'、'403'、'404'] 代码:Python:遍历列表,将空白输出到第二个列表,然后按顺序调用,python,list,Python,List,谢谢你抽出时间来帮我。说到Python,我仍然是个傻瓜,但我正在慢慢地做到这一点 后台故事:基本上,我将配置从PBX传输到CSV文件,然后迁移到另一个系统 我陷入困境的地方:目前我有一个分机号码和语音邮件配置的列表。不是每部手机都有语音邮件电子邮件地址,所以我现在做的是比较数据,看看当前分机是否有相关的电子邮件。由于数据的导出方式,我将所有内容都存储到一个列表中,所有内容都需要对齐 我需要它做什么:我需要将电子邮件很好地输出到列表中,并将其与扩展列表对齐。例如: 列表\扩展\电子邮件=['','
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']
列表扩展号=['1000'、'401'、'402'、'403'、'404']
我不太明白你想要什么,你能给出一个输入和输出的例子吗?@user5173426,想要的输出是:list\u extension\u voicemail=['401,test@test', '404, test2@test“]list_extension_number=['1000'、'401'、'402'、'403'、'404']进入:list_extension_email=['','test@test', ' ', ' ', 'test2@test']list_extension_numbers=['1000','401','402','403','404']@Nullman,示例输入包含在代码的前两行中,示例输出包含在“我需要它做什么”下,如果您需要进一步解释,请告诉我在玩弄它之后,它似乎可以工作了!虽然我有点不确定某些代码的作用,但您愿意解释一下吗?具体来说:number_idx={number:idx for idx,枚举中的数字(列表扩展名)}&list扩展名电子邮件[number_idx[number]]=email@Trap如果您还没有使用Python中的dict
对象和理解的经验,请阅读一些关于该语言的书籍/教程/课程,因为这些都是非常基本的元素,你需要经常看到。在本例中,number\u idx
是一种结构,对于list\u extension\u numbers
中的每个字符串,它在列表中为您提供索引number\u idx[number]
将为您从拆分字符串中获得的号码提供索引,因此list\u extension\u email[number\u idx[number]]=email
将在list\u extension\u email
中的索引中的值设置为提取的电子邮件。