如何从python中的列表中分配字符串

时间:2013-11-07 12:46:34

标签: python string list

我想从列表中读取

data= ['hello','world','# ignorethis','xlable: somethingx','ylable: somethingy']

我的目标:

  1. 我想将列表中的这些字符串分配给不同的变量,以便我将'hello'提供给x,将'world'提供给y,就像这样。
  2. 使用#忽略字符串。
  3. 仅将somethingx读取为变量z而非'xlable: somethingx'

1 个答案:

答案 0 :(得分:3)

使用列表理解:

>>> data= ['hello','world','# ignorethis','xlable: somethingx','ylable: somethingy']
>>> x, y, z = [item.split(':')[-1].strip() for item in data 
                                                  if not item.startswith('#')][:3]
>>> x
'hello'
>>> y
'world'
>>> z
'somethingx'

<强>解释

  1. item.startswith('#')过滤以'#'开头的项目。如果您想在字符串中的任意位置检查'#',请使用if '#' not in item

  2. item.split(':')将字符串拆分为':'并返回一个列表:

  3. 示例:

    >>> 'xlable: somethingx'.split(':')
    ['xlable', ' somethingx']
    >>> 'hello'.split(':')
    ['hello']
    

    在Python3中你也可以这样做:

    x, y, z, *rest = [item.split(':')[-1].strip() for item in data 
                                                     if not item.startswith('#')]