将字符串收集到for循环中的列表

时间:2018-01-30 18:00:01

标签: python

我正在读取一个文件,我在每行解析特定字符串。 在每一行中找到特定的字符串。现在我正在尝试将这些字符串收集到一个列表中,但它不起作用。

with open('readfile.txt',"r") as data:
myList = []

for lines in data

    myValues = re.findall(.......)  #that's so far OK, regex finds data of interest

    collect_ToList = myList.append(myValues)

    print(collect_ToList )

输出:

None
None
None
None
None
None
None
None
None

调试信息:

print(type(myValues)) 

输出:

<type 'str'>
<type 'str'>
<type 'str'>
<type 'str'>
<type 'str'>
<type 'str'>
<type 'str'>
<type 'str'>
<type 'str'>

我做错了什么?

4 个答案:

答案 0 :(得分:2)

myList.append(item)item添加到myList,无需将输出保存在collect_ToList等变量中。

with open('readfile.txt',"r") as data:
    myList = []
    for lines in data:
        myValues = re.findall(.......)
        myList.append(myValues)
print(myList)

您也可以在一行中完成:

with open('readfile.txt',"r") as data:
    myList = [re.findall(.......) for lines in data]
print(myList)

答案 1 :(得分:1)

列表的append函数返回None,而您似乎期待列表,请记住列表是可变的。

尝试打印myValuesmyList

答案 2 :(得分:1)

append修改列表并返回None

  

append(object) -> None -- append object to end

因此改变:

collect_ToList = myList.append(myValues)
print(collect_ToList )

成:

myList.append(myValues)
print(myList)

答案 3 :(得分:0)

当您呼叫collect_ToList = myList.append(myValues)时,您正在修改myList,但list.append返回None,分配给collect_ToList

如果您要打印要附加的值,请执行print(myValues)

如果您要打印myList,请使用print(myList)

如果您要将myList的{​​{1}}内容保存到新变量,请使用myValues