python - 我如何使用迭代来提高效率?

标签 python python-3.x iteration

我是 python 的新手,我知道我可以使用迭代(例如 for 循环)使下面的代码更简洁,我只是不知道该怎么做

这是我目前的情况

# Open file for reading
dataFileRead = open(filename, "r")

# Read file content into a list - to be completed - Part 1

SampleData = [line.rstrip('\n') for line in open(filename)]
print(SampleData)

variables = [mazeWidth, mazeHeight, aNumOfTreasures, aNumOfBombs, emptyCell, treasure, bomb, exitGate, boundary, boundarySide]
mazeWidth = SampleData[0]
mazeHeight = SampleData[1]
aNumOfTreasures = SampleData[2]
aNumOfBombs = SampleData[3]
emptyCell = SampleData[4]
treasure = SampleData[5]
bomb = SampleData[6]
mario = SampleData[7]
exitGate = SampleData[8]
boundary = SampleData[9]
boundarySide = SampleData[10]

任何输入都有帮助!谢谢

最佳答案

您可以使用字典来保存变量的名称和值,而不是使用单独的变量:

variable_names = ['mazeWidth', 'mazeHeight', 'aNumOfTreasures', 'aNumOfBombs', 'emptyCell', 'treasure', 'bomb', 'exitGate', 'boundary', 'boundarySide']

variables = {
  name: SampleData[i] for i, name in enumerate(variable_names)
}

以后,如果你想要变量exitGate的值,例如,你可以使用:

variables['exitGate']

对于赋值,使用:

variables['exitGate'] = "some value"

但是如果你想要单独的变量,你可以使用这个:

for i, name in enumerate(variable_names):
    globals()[name] = SampleData[i]

稍后您可以像往常一样访问(获取和设置)变量 (print(exitGate); exitGate = "some value")。

关于python - 我如何使用迭代来提高效率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57279904/

相关文章:

python - 为什么 read() 输出一个字节而不是一个字符串?

python - 创建列表列表的列表以对文本文件中的数据进行排序

python - 详细变换的逆

c++ - 访问 mulimap 中的元素

python - 在Python中: how to see the attributes of a 'property object' ?

python - 如何使用 python 根据另一个列表获取列表中的项目计数?

python - 重写 sqlalchemy 中的关系行为

python - 在Python中手动编写warpAffine代码

python - 以某种方式组合 2 个列表的元素

python - 填充列表与字典时的性能注意事项