Python 如何将这些列表合并到一个列表中?

Python 如何将这些列表合并到一个列表中?,python,Python,我有这个列表(asList),它是从一个文件中读取的,现在我需要用冒号分隔它,并创建新的列表列表 asList = ['green:g----:g::g\n', '\n', 'green:gr---:r::gr\n', '\n', 'green:gree-:e::gre\n', '\n', 'green:green:n::gren\n', '\n'] 在这个for循环之后 for i in asList: print i.split(":") 结果是: ['green', 'g--

我有这个列表(asList),它是从一个文件中读取的,现在我需要用冒号分隔它,并创建新的列表列表

asList =  ['green:g----:g::g\n', '\n', 'green:gr---:r::gr\n', '\n', 'green:gree-:e::gre\n', '\n', 'green:green:n::gren\n', '\n']
在这个for循环之后

for i in asList:
    print i.split(":")
结果是:

['green', 'g----', 'g', '', 'g\n']
['green', 'gr---', 'r', '', 'gr\n']
['green', 'gree-', 'e', '', 'gre\n']
['green', 'green', 'n', '', 'gren\n']

现在我需要将这4个列表合并成一个列表,其中包含4个元素(每个列表都是一个元素),但我不知道如何做。有人能帮我吗?谢谢

您可以使用列表理解:

listOfLists = [i.split(":") for i in asList]
或者更改for循环,您必须将它们附加到父列表中:

listOfLists = []
for i in asList:
    listOfLists.append(i.split(":"))

它们都做同样的事情。列表理解更简洁(我认为可读性更强),如果您想在将子列表添加到
列表之前对其进行更多操作,则for循环更灵活。您可以使用列表理解:

listOfLists = [i.split(":") for i in asList]
或者更改for循环,您必须将它们附加到父列表中:

listOfLists = []
for i in asList:
    listOfLists.append(i.split(":"))

它们都做同样的事情。列表理解更简洁(我认为可读),如果您想在将子列表添加到
列表之前对其进行更多操作,则for循环会更灵活一些。看起来您已经在文件中读取并已在\n上拆分了。为什么不呢


data=open('foo','r').read().replace('\n',':').split(':')

看起来您已经在文件中读取并已在上进行了拆分\n。为什么不呢


data=open('foo','r').read().replace('\n',':').split(':')

为此使用列表理解。。要轻松工作,请使用列表理解。。要轻松工作,请使用
combinedList=list(i.split(“:”)表示asList中的i)
(未经测试),如果您想消除空白,请使用
[row.strip().split(“:”)表示asList中的row if row.strip()]
感谢这非常有帮助,尽管我不明白为什么要使用stri()这些空白在哪里?每行末尾的“\n”字符是换行符,它们被视为空白。如果不需要换行符,可以在行上使用.strip()(在拆分它们之前)来删除它们。如果要删除空白,请使用
[row.strip().split(':')作为asList if row.strip()]中的行。
谢谢这非常有帮助,尽管我不明白为什么要使用stri()这些空白在哪里?每行末尾的“\n”字符是换行符,它们被视为空白。如果不需要换行符,可以在行上使用.strip()(在拆分它们之前)去掉换行符。我认为这是行不通的,因为readlines()返回一个列表,replace()仅是方法fot str(至少这是我得到的错误)。我认为这是行不通的,因为readlines()返回一个列表,replace()仅是方法fot str(至少这是我犯的错误)