【发布时间】:2014-01-16 13:33:51
【问题描述】:
我打开了一个文件,并使用readlines() 和split() 和正则表达式'\t' 来删除TAB,结果如下:
["1", "cats", "--,"]
["2", "chase", "--,"]
["3", "dogs", "--,"]
["1", "the", "--,"]
["2", "car", "--,"]
["3", "is", "--,"]
["4", "gray", "--,"]
现在我想通过将索引 [0] 上的整数循环为句子边界,将其提取并切成子列表,例如“猫追狗”和“汽车是灰色的”。例如,1 - 3 子列表“猫追狗”,然后继续计数 1 - 4 子列表“汽车是灰色的”,其余列表以此类推,所以我得到子列表 ["the", "car", "is", "gray" ]。我该怎么做?
我已经尝试过了,但出现错误:
无法连接 int + str
在 for 循环中将“i”检测为字符串元素而不是整数:
with open(buffer, 'r') as f:
words = []
for line in f:
items = line.split('\t')[:1]
for i in items:
while i>1:
i = i+1
print i
【问题讨论】:
-
你尝试了什么?你说你想提取和切片“通过循环索引[0]上的整数”等等,但还没有尝试过?
-
我尝试使用 while 循环获取索引位置 0 上的所有数字,使其循环 1-3,然后继续计数 1-4,依此类推,但没有得到切片, 比如先得到 1-3 并 sublist "catsches dogs" 应该继续数 1-4 并 sublist "the car is gray" 等等。
-
然后把它放在你的问题中!如果你这样做,你更有可能得到答案。
-
从文件中读取“1”时,为字符串类型。您需要使用
int(i)将其转为int。 -
我试过了,for i in items: l = int(i) print l 但它返回 ValueError: invalid literal for int() with base 10: '' when it is counted a list.跨度>
标签: python regex list loops slice