我希望我的问题有道理。如果一个IF
语句被证明是真的,我希望加入最后两个索引,但是我得到了一个错误。你知道吗
这是我的文本文件:
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])
时,就会出错
非常感谢您的帮助。-谢谢
这就是我想要的
['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
不能对字符串和列表类型应用“+”运算符
或者
相关问题 更多 >
编程相关推荐