【问题标题】:Change a variable name with a raw_input使用 raw_input 更改变量名
【发布时间】:2012-10-30 09:44:14
【问题描述】:

这是一个初学者的问题:

我创建了一个函数,它读取一个 txt 文件(由用户选择)并列出文件中包含的许多数字,称为 A。我将此函数称为 open_file。 然后我想用文件的原始名称更改该列表的名称,加上“_values

我的尝试

file_name = raw_inpunt('Give the name of the file:') # the user chooses the file
open_file (file_name) #A list is created

file_name +'_'+'values' = A

这似乎不起作用。有什么想法吗?

【问题讨论】:

  • 为什么要更改变量名来匹配文件名?这不会使其余代码更难使用该变量吗?如果您确实需要按名称引用数据,请考虑改用 dict
  • 您的代码中存在多个问题:raw_input 中的拼写错误,您没有保存 open_file() 的返回值,因此 A 可能未定义,"something" = anything 不是有效的 Python。以后想怎么使用*_values变量?

标签: python variable-names


【解决方案1】:

如果您要对很多文件执行此操作,最好将列表存储在字典中,而不是为每个文件创建一个新变量。

results = {}
....
file_name = raw_input('Give the name of the file:') # the user chooses the file
open_file(file_name) #A list is created
results[file_name] = A

【讨论】:

    【解决方案2】:

    您可以尝试使用:

    vars()[file_name+"_values"] = A
    

    它不起作用的原因是您试图将列表保存在字符串中。

    基本上file_name+"_"+"values" 是一个字符串而不是一个变量。因此你会得到一个错误。

    不过,我强烈建议您将每个文件名的值列表保存在字典中。

    values = dict()
    values[file_name] = A
    

    这是一种更有效的值存储方式。

    【讨论】:

    • 谢谢。现在,如何将字符串转换为变量以使其正常工作?
    • 我已经更新了我的答案你可以看到代码。是的,如果你喜欢,请接受它=D
    • 不不不不!这是更改变量的糟糕方法!
    • @JakobBowyer 是的,这不是合适的存储方式。但是,如果您确实想从字符串创建一个新变量,这是 Python 中建议的方式。
    • 这显示了它是如何可能的,但我怀疑它是“建议的方式”
    猜你喜欢
    • 1970-01-01
    • 2014-06-25
    • 1970-01-01
    • 2012-06-18
    • 1970-01-01
    • 2016-01-01
    • 1970-01-01
    • 2016-08-31
    相关资源
    最近更新 更多