【发布时间】:2021-03-06 11:43:42
【问题描述】:
我正在进行一项 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)
为什么 medical_records 会发生变异?非常感谢您的洞察力!
【问题讨论】:
-
你没有改变一个列表。你正在改变你的
zip对象,它是一个迭代器,你使用list(medical_records),它耗尽了迭代器
标签: python python-3.x