在python中切换到“”空格

时间:2011-04-26 18:28:33

标签: python slice

如果L = [['abc 1234',2], ['foo 1',2] , ['bar 12312434',2]]

如何将L切片到第一个空间

['abc,'foo','bar']

5 个答案:

答案 0 :(得分:5)

In [1]: L = [['abc 1234',2], ['foo 1',2] , ['bar 12312434',2]]

In [2]: [x[0].split(' ')[0] for x in L]
Out[2]: ['abc', 'foo', 'bar']

答案 1 :(得分:2)

L = [['abc 1234',2], ['foo 1',2] , ['bar 12312434',2]]
print [x[0].split()[0] for x in L]

答案 2 :(得分:1)

for i in range(len(L)):
    s = L[i][0]
    s = s.split(' ')[0]
    L[i] = s

答案 3 :(得分:0)

在您出现的情况下,空格总是出现在同一位置。如果您知道会出现这种情况,您可以执行以下操作:

L = [['abc 1234',2], ['foo 1',2] , ['bar 12312434',2]]
L2 = [x[0][0:3] for x in L]
print L2

输出:

  

['abc','foo','bar']

当然,如果空格可以出现在不同的位置,那么最好使用str.split()之一使用其中一个解决方案。

答案 4 :(得分:0)

我发现列表推导有时候更难以阅读,我宁愿将循环和提取分开:

def extract(element):
    """Extracts the string until the first space of the first element of a list
    >>> extract(['abc 1234',2])
    'abc'
    """
    return element[0].split()[0]

这样你就可以对单个元素进行一些测试:

extract(L[2])
'bar'

然后将其应用于列表推导或使用map [将函数应用于列表的每个元素]:

map(extract,L)
['abc', 'foo', 'bar']