在列表python中拆分一个字符串

时间:2016-05-29 00:19:27

标签: python arrays string list

我在python中有一个列表,它来自我以新行字符分割的文本文档。数据结尾在文本文档中以#表示。我需要计算列表中的每个元素,然后将列表中的字符串拆分为制表符,创建一个二维列表。

我认为这很简单,但是,我没有从我的代码中得到结果。列表中的字符串根本没有分割,永远不会在\t

with open('names.txt') as names:
    records = names.read().split('\n')
recordcount = 0
for item in records:
    if item != '#':
        recordcount += 1
        item = item.split('\t')
print (records)
print (recordcount)

这是否与制表符很麻烦有关?或者我不能就地替换列表的元素吗?我应该使用我的拆分记录创建新列表吗?

2 个答案:

答案 0 :(得分:3)

你只是重新分配一个局部变量。这不会影响列表的内容。试试这个:

for i, item in enumerate(records):
    if item != '#':
        recordcount += 1
        records[i] = item.split('\t')

答案 1 :(得分:1)

您可以就地替换列表项,但item = item.split('\t')只需重新分配本地变量item。您可以通过以下方式轻松替换列表项: records[index] = item。您可以使用enumerate功能获得正确的index

您的代码已更改为您想要的内容:

with open('names.txt') as names:                                            
    records = names.read().split('\n')                                      
recordcount = 0                                                             
for index, item in enumerate(records):                                      
    if item != '#':                                                         
        recordcount += 1                                                    
        item = item.split('\t')                                             
        records[index] = item                                               
print (records)                                                             
print (recordcount)