python - Call Variables From For Loop
问题描述
I have been trying to iterate through a for loop to call variables from strings, is this something that can be done?
I want to have some code that works as so.
empleado0 = ["Diego Mondragón", 1, 50, "M"]
empleado1 = ["Juan Esteban Aristizabal", 1, 37, "M"]
I was going to use this list to merge both lists.
nomina=[]
This is where the error occurs, I have tried %d and +i but it does not work.
for i in range(2):
nomina.append(empleado'i')
print(nomina)
解决方案
您无法添加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'"]]
推荐阅读
- python - 为 pandas 中的列使用唯一值
- kubernetes - Google Cloud 部署和 Kubernetes 节点 IP 地址更改
- haskell - Haskell:如何找到用于阿特金筛子的方程的整数解的数量?
- c# - 从excel导入数据也得到空行
- lua - lua table.sort 没有正确排序
- python - 将 tf.contrib.opt.ScipyOptimizerInterface 与 tf.keras.layers 一起使用,损失不会改变
- c++ - 在 Visual Studio Code 上设置 C++
- python-3.x - 模型可以预测新图像
- css - ReactJS如何从V,X更改react-switch文本
- javascript - 如何动态构建MongoDB聚合语句?