如何在python中解决分裂问题?

时间:2015-06-08 09:05:51

标签: python

当我试图用final_header_update中的','分割并得到数组的第一个元素时,我得不到我需要的东西。

import time
with open("master.txt", "r") as data1:
    master = data1.read().rstrip().split("\n")
with open("Security_Headers_list.txt", "r") as data2:
    for line in data2:
        num, cat = line.rstrip().split(",", 1)
        headers=num +','+','.join('1' if t in cat else '0' for t in master)
        useragent_id=str(1)
        date=time.strftime("%d/%m/%Y")
        final_header_update=headers+","+date+","+useragent_id
        print final_header_update
        for db_update in final_header_update:
            a=db_update.split(",")
            print a[0]

Final_header_update的输出是:

1006,1,1,1,1,1,1,08/06/2015,1

我的输出为:

1
0
0
6

1

1

1

1

1

1

0
8
/
0
6
/
2
0
1
5

1

而不仅仅是ID:1006

2 个答案:

答案 0 :(得分:2)

你得到这个是因为你正在循环final_header_update

for db_update in final_header_update:

这个for循环将导致遍历final_header_update中的每个字符,这是我们不想要的。

为了获得更清晰的图片,我们可以考虑

>>> final_header_update = "1006,1,1,1,1,1,1,08/06/2015,1"
>>> for db_update in final_header_update:
...     print db_update
... 
1
0
0
6
,
# And so on

<强>解决方案

相反,你可以写(那就是摆脱for循环)

print final_header_update
a = final_header_update.split(',')
print a[0]
# Will give the output
# 1006

答案 1 :(得分:1)

问题出在for db_update in final_header_update:

相反,直接做:

a=final_header_update.split(",")
print a[0]