您不能添加empleado[i],因为那会是姓名、性别等。
每次有新员工时,将其分配给相同的变量empleado,然后在循环中将其附加到nomina。您不希望在代码中包含 empleado1 等变量,因为如果员工数量发生变化,这将不起作用。
nomina=[]
empleado=["Diego Mondragón", 1, 50, "M"]
nomina.append(empleado)
empleado=["Juan Esteban Aristizabal", 1, 37, "M"]
nomina.append(empleado)
for em in nomina:
print(em)
输出:
['Diego Mondragón', 1, 50, 'M']
['Juan Esteban Aristizabal', 1, 37, 'M']
假设你从一个文件中读取
Diego Mondragon, 1, 50, 'M'
Juan Esteban Aristizabal, 1, 37, 'M'
进入列表lines。
f = open("c:/test.txt",'r')
lines=f.readlines()
lines
输出:
["Diego Mondragon, 1, 50, 'M'\n", "Juan Esteban Aristizabal, 1, 37, 'M'\n"]
现在去掉多余的换行符并检查每一行的类型:
for l in lines:
l=l.strip()
print(l, type(l))
输出:
Diego Mondragon, 1, 50, 'M' <class 'str'>
Juan Esteban Aristizabal, 1, 37, 'M' <class 'str'>
所以我们已经清理过了,并且知道结果行是一个字符串。但是每个子字符串仍然有多余的空格,我们应该删除:
# turn string into list
empleado = lines[0].strip().split(',')
print(empleado)
#clean up extra spaces
emp2=[]
for e in empleado:
emp2.append(e.strip())
print(emp2)
输出:
['Diego Mondragon', ' 1', ' 50', " 'M'"]
['Diego Mondragon', '1', '50', "'M'"]
把它们放在一起:
f = open("c:/test.txt",'r')
lines=f.readlines()
nomina=[]
for l in lines:
l=l.strip()
empleado=l.split(',')
emp2=[]
for e in empleado:
emp2.append(e.strip())
nomina.append(emp2)
print(nomina)
输出:
[['Diego Mondragon', '1', '50', "'M'"], ['Juan Esteban Aristizabal', '1', '37', "'M'"]]