将列表中的项目拆分为两个,并将其中一个项目附加到另一个列表中

时间:2010-06-30 19:41:33

标签: python

嘿所有人。尝试使用Python中的列表提高效率,但我似乎无法弄清楚我是否可以做我想做的事情,或者即使值得搞清楚。

stream是一个列表。列表中的每个项目都是:

10,123400FFFE001DB9AA

我试图在逗号后面的每个项目的第二部分,所以我通过列表分割每个项目并将其存储在临时文件中。我将temp [1]附加到另一个名为incoming_data的列表中。

我想将拆分并保存到temp的行组合并将incoming_data列表追加到一行,如:

incoming_data.append(item.split( ''))

我知道上面的语法完全不正确,但我希望它能解决问题。这是我目前的代码。

其他批评一如既往地欢迎。谢谢!

#init the final list
incoming_data = list()

#iterate over each item in the list
for item in stream:

      #clear the temp variable for next time
      temp = ''

      #we sometimes get blank items in the stream list so check first
      if item <> '':

             #split each item in the stream list using the comma as delimiter
             temp = item.split(',')

             #append to the final data lis
             incoming_data.append(temp[1])

3 个答案:

答案 0 :(得分:6)

incoming_data = [item.split(",")[1] for item in stream if item]

if item会丢弃stream中的空白行。

答案 1 :(得分:1)

您可以使用Python的方便花花公子list comprehensions在一行中执行此操作:

incoming_data = [ item.split(',')[1] for item in stream ]

答案 2 :(得分:1)

实际上,你可以incoming_data.append(item.split(',')[1])。如果你真的想要你可以使用列表理解将整个shebang组合成一个衬里(由于理查德,我现在已经纠正了空白行):

incoming_data = [item.split(',')[0] for item in stream if item]

虽然如果你实际上是在播放某些东西,你应该看看generators(PDF) - 它们绝对令人惊叹。