被“\t”拆分的python没有显示i中的所有元素

2024-04-29 22:17:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图按“\t”拆分,但它没有打印其中的所有元素

import sys
reload(sys)  
sys.setdefaultencoding('utf8')

s = ['A\t"Ravi"\t"Tirupur"\t"India"\t"641652"\t"arunachalamravi@gmail.com"\t"17379602"\t"+ 2"\t"Government Higher Secondary School', ' Tiruppur"\t\t"1989"\t"Maths',' Science"\t"No"\t"Encotec Energy 2 X 600 MW ITPCL"\t"Associate Vice President- Head Maintenance"\t"2015"\t"2016"\t"No"\t"27-Mar-2017"\t"9937297878"\t\t"2874875"\t"Submitted"\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t']
print s[0].split("\t")

结果

['A', '"Ravi"', '"Tirupur"', '"India"', '"641652"', '"arunachalamravi@gmail.com"', '"17379602"', '"+ 2"', '"Government Higher Secondary School']

但我希望能有结果

2874875, Submitted

如何修复代码以及更改在哪里?你知道吗


Tags: noimportcom元素sysgmailsecondaryschool
3条回答

很简单,您的列表中有多个项目,因此当您执行s[0]操作时,只需获得第一个项目,然后按如下方式修复列表或代码:

joined_string = ''.join(s)
print joined_string.split("\t")

应该有用的

对于您的数据,您应该执行以下操作:

s[2].split("\t")[10:12]

可以使用Python的^{}函数从多个元素中创建一个列表:

from itertools import chain

s = ['A\t"Ravi"\t"Tirupur"\t"India"\t"641652"\t"arunachalamravi@gmail.com"\t"17379602"\t"+ 2"\t"Government Higher Secondary School', ' Tiruppur"\t\t"1989"\t"Maths',' Science"\t"No"\t"Encotec Energy 2 X 600 MW ITPCL"\t"Associate Vice President- Head Maintenance"\t"2015"\t"2016"\t"No"\t"27-Mar-2017"\t"9937297878"\t\t"2874875"\t"Submitted"\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t']

result = list(chain.from_iterable(x.rstrip('\t').split('\t') for x in s))
print result

这将为您提供所有拆分条目,并从末尾删除尾部制表符:

['A', '"Ravi"', '"Tirupur"', '"India"', '"641652"', '"arunachalamravi@gmail.com"', '"17379602"', '"+ 2"', '"Government Higher Secondary School', ' Tiruppur"', '', '"1989"', '"Maths', ' Science"', '"No"', '"Encotec Energy 2 X 600 MW ITPCL"', '"Associate Vice President- Head Maintenance"', '"2015"', '"2016"', '"No"', '"27-Mar-2017"', '"9937297878"', '', '"2874875"', '"Submitted"']

如果您还想去掉引号,请改用以下方法:

result = [v.strip('"') for v in chain.from_iterable(x.rstrip('\t').split('\t') for x in s)]    

给你:

['A', 'Ravi', 'Tirupur', 'India', '641652', 'arunachalamravi@gmail.com', '17379602', '+ 2', 'Government Higher Secondary School', ' Tiruppur', '', '1989', 'Maths', ' Science', 'No', 'Encotec Energy 2 X 600 MW ITPCL', 'Associate Vice President- Head Maintenance', '2015', '2016', 'No', '27-Mar-2017', '9937297878', '', '2874875', 'Submitted']

相关问题 更多 >