Python:concated string,允许它调用tup

2024-09-27 23:16:09 发布

您现在位置:Python中文网/ 问答频道 /正文

在一个名为say'data'的文件中,我有一些元组:

tuple1 = (1, 2, 3)
tuple2 = (4, 5, 6)

在另一个文件中调用元组来导入数据。在

^{pr2}$

如果我尝试打印元组,会得到一个错误,因为数据中没有定义字符串(1)。在

^{3}$

出现以下结果:

(1, 2, 3)
tuple1

Traceback (most recent call last):
  File "C:/Python27/Scripts/tuplecall.py", line 10, in <module>
    print data.string(1)
AttributeError: 'module' object has no attribute 'string'

我可以理解为什么它不起作用,但是我不知道当我试图调用数据集时,如何将string(1)更改为tuple1。在

到目前为止,我解决这个问题的方法是使用以下代码:

from data import *

def string(tupleNumber):

    return 'tuple' + str(tupleNumber)

print tuple1
print string(1)
print eval(string(1))

结果是:

(1, 2, 3)
tuple1
(1, 2, 3)

然而,由于我的“数据”文件中有很多数据,我很担心我在每个元组中使用“from data import*”来浪费内存加载,而当我需要它时,我可以像在第一种情况下那样调用它,但我显然遗漏了一些重要的东西。在

我还看到eval()并不是最好的使用方法,但到目前为止,我发现它是有效的。因此,如果有人能给我一些关于如何提高我的理解力的想法,我将不胜感激。在

谨致问候

嗤之以鼻。在


Tags: 文件数据方法fromimportdatastringeval
2条回答

string()的方法声明不在数据文件中,因此数据.string()不起作用

这不是变量名的真正含义。tuple1tuple2中的数字1和2要么意味着什么(例如,1实际上是指“1个人”和2“2个人”),要么不是,它们只是占位符。在

如果它们确实有意义,你应该使用字典:

>>> my_data = {1: (1,2,3), 2: (4,5,6)}
>>> my_data
{1: (1, 2, 3), 2: (4, 5, 6)}
>>> my_data[1]
(1, 2, 3)
>>> my_data[2]
(4, 5, 6)

如果它们没有,而您只需要两个元组,那么您还可以使用一个列表:

^{pr2}$

你绝对不需要使用eval。在

相关问题 更多 >

    热门问题