0
我希望我的问题有意义。如果IF
声明是正确的,我希望加入最后2个索引,但我收到了错误。python加入列表中的最后两个索引
这里是我的文本文件:
AAA BBB CCC NY 10018 111111111E
AAA BBB CCC DDD NY 11946222222222E
AAA BBB CCC NY 10018 333333333E
AAA BBB CCC DDD NY 11946444444444E
这里是我的代码:
with open('O:/python1docs/sample_1.txt', 'rb') as infile:
data1 = []
for row in infile:
row = row.strip().split()
rend = len(row) - 1
rend2 = rend - 1
rend3 = rend2 - 1
if len(row[rend]) == 10 and len(row[rend2]) == 5 and len(row[rend3]) == 2:
row = row[0:rend2] + ' ' + ''.join(row[rend2] + row[rend])
data1.append(row)
else:
data1.append(' '.join(row))
print '\n'.join(data1)
错误消息我得到:
Traceback (most recent call last):
File "O:\python1\py_programs\lipa_newbiz3.py", line 12, in <module>
row = row[0:rend2] + ' ' + ''.join(row[rend2] + row[rend])
TypeError: can only concatenate list (not "str") to list
[Finished in 0.2s with exit code 1]
我可以加入任何单一指标,即: row = row[*] + ' ' + ''.join(row[rend2] + row[rend])
和代码的作品,但是当我尝试加入所有的指数row[0:rend2] + ' ' + ''.join(row[rend2] + row[rend])
它的错误o ut
任何帮助,非常感谢。 -Thanks
这就是我想要的
['AAA BBB CCC NY 10018111111111E']
['AAA BBB CCC DDD NY 11946222222222E']
['AAA BBB CCC NY 10018333333333E']
['AAA BBB CCC DDD NY 11946444444444E']
更长的路
for row in infile:
row = row.strip().split()
rend = len(row) - 1
rend2 = rend - 1
rend3 = rend2 - 1
row1 = []
templist1 = []
templist2 = []
templist3 = []
templist4 = []
templist5 = []
if len(row[rend]) == 10 and len(row[rend2]) == 5 and len(row[rend3]) == 2:
templist1.append(' '.join(row[0:rend2]))
templist2.append(row[rend2])
templist3.append(row[rend])
templist4.append(' '.join(templist1 + templist2))
templist5.append(''.join(templist4 + templist3))
print ' '.join(templist5)
else:
row = ' '.join(row)
print row
这里是
for row in infile:
row = row.strip().split()
rend = len(row) - 1
rend2 = rend - 1
rend3 = rend2 - 1
if len(row[rend]) == 10 and len(row[rend2]) == 5 and len(row[rend3]) == 2:
row = ' '.join(row[0:rend2]) + ' ' + ''.join(row[rend2] + row[rend])
print row
else:
row = ' '.join(row)
print row
'行[*]''是但String''行[0:rend2]'是'List'。所以你在'row = row [0:rend2] +''+''.join(row [rend2] + row [rend])'中将“String”连接到“List”。这是这个错误的原因。 – 2014-09-26 03:41:55
我不明白。对于给定的输入,你能准确地显示出你想要的结果吗? – 2014-09-26 04:11:37