我试图创建一个列表序列,其中包含不同的变量名,对应于文本文件的不同行。我当前的代码要求我硬编码文件中的行数:
with open('ProjectEuler11Data.txt') as numbers:
data = numbers.readlines()
for line in data:
if line == 1:
line1 = line.split()
if line == 2:
line2 = line.split()
if line == 3:
line3 = line.split()
if line == 4:
line4 = line.split()
在这种情况下,我将不得不继续到20,这不是很糟糕,但我想有一个更简单的方式,我不知道。 这是一个ProjectEuler问题,但没有任何破坏者,而且我正在寻找关于这个具体任务的建议,而不是我的整体策略。谢谢!你知道吗
我不知道为什么你需要为每一行不同的变量名,当你可以有一个数组,所有行在最后。 现在,您可以通过第[0]行、第[1]行等简单地访问各个行。你知道吗
为什么不使用dict来更新脚本的局部变量呢?你知道吗
这样,您就可以在脚本的范围内使用
lineX
。 为了解释: 在python中,一切(几乎)都是一个对象,每个对象都有一个dict和定义它的变量,一个类在dict中有self
属性,例如函数。即使模块或脚本的变量存储在字典中,您也可以通过globals()
访问外部作用域可以访问的全局变量的dict,或者通过locals()
访问内部作用域中的变量的dict。由于它存储在字典中,所以您可以像管理它一样管理它,调用任何其他字典对象可用的任何方法。例如:正在创建变量
myVariable
,该变量在模块的作用域中存储5
。你知道吗您可以使用
globals()
或locals()
来定义范围指针名称。另外enumerate()
内置函数允许您遍历集合的索引和值。知道了这一点,你可以做如下事情:相关问题 更多 >
编程相关推荐