在Python

时间:2017-04-01 18:51:05

标签: python-3.x

我很难过。

for a in range(0,500): #500 is a highly variable number but using it for example purposes
    b = findall(r'<(.*?)>', d) # d will return a highly number variable number of matches could be anywhere from 45-10000
    c.append([b])
print(c[0][1])

这会返回错误,因为&#39; b&#39;进入c [0] [0]。我能理解这一点。问题是如何拆分&#39; b&#39;分开所以我可以把它放进c所以我可以

print(c[0][234])

然后让它回到235,err元素234的1,错误0,行?

这是我上面所说的情况,其中经历过的次数是&#39; b&#39;将变量,至少目前为止,直到我得到整个文件准备我只能那&#39; b&#39;最终将在10,000的北方,在我完成所有数据收集时可能接近100,000。存储的元素数量可以并且将根据它们来自的文件高度可变。它们都来自csv文件,但我希望不要处理添加任何“复杂性”的问题。通过外出并不得不处理csv模块...因为我之前从未使用过它,这可能会引发更多问题。

我尝试过类似于......不同变量的东西,所以事情会适当地匹配

d = list(zip(*(e.split(',') for e in b)))

所有这些都是在每个字母和逗号上分开的。

1 个答案:

答案 0 :(得分:0)

您的错误来自c.append([b])中的方括号。括号创建一个包含列表b的额外列表。因此,不是二维数据结构,而是以三个维度结束。您的索引失败是因为c[0][1]正试图从中间列表中获取第二个值(其中只有一个项目)。

您可以使用c[0][0][1]获得所需内容。但是,您可能实际上并不希望数据结构中有额外的级别。您可以使用以下代码来避免创建它:c.append(b)