目录
实战题
1、“千年虫”是什么虫?
要求:已知一个列表中存储的是员工的出生年份 [88,89,90,98,00,99] 由于时间比较久,出生的年份均为2位整数,现需要2位年份前加19,如果年份是00,则需要加上200。
【参考示例1】:采用遍历列表的方式
lst = [88, 89, 90, 98, 00, 99] # 初始化列表,注意00在Python中等同于0
print(lst) # 输出原始列表:[88, 89, 90, 98, 0, 99]
for index in range(len(lst)): # 遍历列表中的每一个元素
# 判断当前元素转换为字符串后是否不等于'0'
# 这里的比较存在问题,因为当元素为0(即原始列表中的00)时,str(lst[index])为'0'
if str(lst[index]) != '0':
# 如果不等于'0',则拼接'19'并重新赋值
# 这里会导致列表元素从整数变为字符串
lst[index] = '19' + str(lst[index])
else:
# 如果等于'0',则拼接'200'并重新赋值
# 注意,由于00在Python中就是0,所以这种情况只会针对数字0发生
lst[index] = '200' + str(lst[index]) # 实际上这里应写为'2000',因为'200' + '0'会得到'2000'
# 输出修改后的列表,此时列表元素已全部变为字符串
print('修改后的年份列表:', lst)
输出内容:
[88, 89, 90, 98, 0, 99]
修改后的年份列表: ['1988', '1989', '1990', '1998', '2000', '1999']
【参考示例2】:使用enumerate() 函数
# 初始化一个列表,包含员工的两位整数出生年份。注意,Python中的整数00会被自动转换为0。
lst = [88, 89, 90, 98, 00, 99]
# 打印原始年份列表
print(lst)
# 使用enumerate函数遍历列表,enumerate会同时返回元素的索引(index)和值(value)
for index, value in enumerate(lst):
# 将当前年份值转换为字符串,以便进行字符串比较
# 注意,当原始列表中的年份为0(即00)时,value的值为0,str(value)的结果为'0'
if str(value) != '0':
# 如果年份值转换为字符串后不等于'