元组的Python元组:访问类似于二元数组

2024-09-27 19:23:31 发布

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

我得到的数据是字符串。我有一个for循环来捕获所有数据并放入元组中。我使用元组的原因是,我希望能够像这样访问数据

tupOfTuple[1][0:4]#accessing x=1(line 1), elements 0-4.

这是我当前的代码

^{pr2}$

在显示“print rowTup[1][0]”的行,我得到以下错误

"IndexError: tuple index out of range".

我的行头应该是这样的

18 23 43 srgrsdg 23 23 sdrfg
fd we 32 fgsfs   23 34 12

所以对于rowTup[1][0],我希望看到{}。这是Win7。有人能告诉我我做错了什么吗?我应该尝试使用二维数组吗?在


Tags: 数据字符串代码for错误line原因elements
3条回答

你可以做这种索引业务,但你想用列表来代替。这是因为元组是不可变的(不能更改),因此当您编写类似

rowTup = rowTup + colTup

别那样做。对于列表,您可以通过

^{pr2}$

产生一个列表[1,2]。在

至于为什么会超出范围,正如我所见,这只是因为在尝试执行rowTup[0][3]之前,其中一个循环没有转到3(或者0)。在

编辑:也是。作为一件小事,你的一些打印声明应该是注释。你应该这样用

# This is a comment for the coder (ie. yourself).
# Variable a is here set and printed.
a = 2
print "Hello program user. This is a message for you. a =", a

EDIT2:在Python中可以很容易地查看元组的内容。简单地写

print rowTup

colTup = colTup + dataStr
[...]
rowTup = rowTup + colTup

当您将两个元组添加到一起时,它会合并它们,而不会创建一个元组组。如果rowTup是(1,2,3),colTup是(4,5,6),那么像您所做的那样将它们相加将生成一个值为(1,2,3,4,5,6)的新元组,并用这个新元组覆盖rowTup。在

由于您是如何将这些内容添加到一起的,所以您所拥有的只是一个巨大的项元组,而不是多维的(这也是为什么会出现超出范围的错误)。在

您可以修复这个问题,并继续使用元组,方法是将它们作为单独的元组组合在一起:rowTup = (rowTup,) + (colTup,)。但是让我们一起丢弃元组。您将它们用于更适合列表的内容(主要是需要更改的数据)。在

对于列表,使用append选项可以更容易地获得所需的功能。它的行为是:

>>> a = []
>>> a.append(1)
>>> a.append(2)
>>> print(a)
[1, 2]
>>> b = []
>>> b.append(3)
>>> b.append(4)
>>> print(b)
[3, 4]
>>> c = []
>>> c.append(a)
>>> c.append(b)
>>> print(c)
[[1, 2], [3, 4]]

这里有一个多维列表。访问c[0]返回[1, 2],并继续该操作,c[0][0]返回{}。在

如果dataStr是元组,则可以通过

colTup = colTup + (dataStr,)

相关问题 更多 >

    热门问题