首页 > 解决方案 > 如何创建无限变量

问题描述

我想知道是否有办法制作无限变量。我在网上找不到任何关于此的内容,所以有人可以帮忙吗?我在 Mac 上使用 python IDEL 3.9.1,以防万一。只是为了说明这一点,我不想重写变量。我有一个使用重复变量存储信息的泡菜文件。我需要阅读它们。这是我的代码:

json = .json
while loopvariable == true:
    #looping variable here = pickle.load( open( savefilename, "rb"
    if #name (a variable from a input() earlier == #looping variable here: 
        savefilename = #looping variable here + json
        favorite_color = pickle.load( open( savefilename, "rb" 
        loopvariable = false
    elif name != #looping variable here
        a = true
while a = true:
    loopvariable = false
    loopvariable = true
    a = false

有人能帮我吗?

标签: pythonpickle

解决方案


我无法理解到底想做什么,但我可以给出一些一般性的建议。

在处理多个相关数据时,您应该始终使用集合数据结构,而不是将它们存储在单独的变量中。

例如,如果尝试输入用户的三个名称,初学者程序员可能会说:“嘿,我知道我将使用三个变量!”。这是编写此代码的错误方法。

IE

name1 = input('Name: ')
name2 = input('Name: ')
name3 = input('Name: ')

为什么会对此不屑一顾?因为那时您必须按名称访问每个变量,并且使用索引动态访问它们很痛苦。

所以说你想把三个名字都打印出来,你现在必须写

print(name1)
print(name2)
print(name3)

这是很多工作。

相反,始终使用列表或其他集合数据结构。

例如,在这里您通常最好编写这样的代码。

names = []
for i in range(3):
    names.append(input('Name: '))

...

for i in range(3):
    print(names[i])

所以这回答了你的问题,因为听起来你正试图将数据块保存在许多不同的变量中。这不仅使访问变量变得困难,而且使跟踪它们变得很痛苦。这也不是 Python 的预期设计方式(与 MATLAB 等其他语言相反,您可能被迫创建变量来跟踪矩阵等)


推荐阅读