我正在做一个CodeAcademy活动,我将两个列表压缩在一起。我会得到不同的打印结果,这取决于它们的放置顺序
names = ["Mohamed", "Sara", "Xia", "Paul", "Valentina", "Jide", "Aaron", "Emily", "Nikita", "Paul"]
insurance_costs = [13262.0, 4816.0, 6839.0, 5054.0, 14724.0, 5360.0, 7640.0, 6072.0, 2750.0, 12064.0]
medical_records = zip(insurance_costs, names)
print (list(medical_records))
num_medical_records = len(list(medical_records))
print(num_medical_records)
当我打印时,我得到了预期的列表,但是num_medical_records是0?如果我切换打印语句的顺序,结果是一个空列表,但打印num_medical_records会给出正确的数字“11”
medical_records = zip(insurance_costs, names)
num_medical_records = len(list(medical_records))
print (list(medical_records))
print(num_medical_records)
为什么医疗记录会发生变异?非常感谢您的洞察力
我相信
zip
返回一个迭代器。调用list(medical_records)
时,将耗尽迭代器。这就是调用len(list(medical_records))
没有结果的原因,因为没有任何结果资料来源:https://docs.python.org/3.3/library/functions.html#zip
您应该首先将
zip(insurance_costs, names)
保存到列表中,例如zipped_list = list(zip(insurance_costs, names))
然后对存储列表的
zipped_list
变量执行其他操作。zip
只创建迭代器,在其上运行的第一个函数将耗尽迭代器zip函数只能迭代一次
您可以这样做:
相关问题 更多 >
编程相关推荐