在python中,如何从数组的元素中获取字符串的一部分?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (1293)

例如,我有一个包含字符串元素的数组,我只想要前3个字符:

>>> import numpy
>>> a = numpy.array(['apples', 'foobar', 'cowboy'])

我该怎么做才能获得['app','foo','cow']

我尝试了以下但它不起作用

 >>> b = a[:],[0,2]
提问于
用户回答回答于

尝试使用map如下:

import numpy

a = numpy.array(['apples', 'foobar', 'cowboy'])
b = map(lambda string: string[:3], a)

print(b) # ['app', 'foo', 'cow']

使用这种方法的一个好处是,如果你想对numpy数组中的每个元素做更复杂的事情,你可以定义一个更复杂的单参数函数,它从该数组中获取一个元素,然后吐出所需的元素。像这样的数据:

import numpy

def some_complex_func(element):
    """
    Do some complicated things to element here.
    """

    # In this case, only return the first three characters of each string
    return element[:3]

a = numpy.array(['apples', 'foobar', 'cowboy'])
b = map(some_complex_func, a)

print(b) # ['app', 'foo', 'cow']
用户回答回答于
import numpy
a = numpy.array(['apples', 'foobar', 'cowboy'])    
v = list(a)
b = [val[:3] for val in v]
print(b)
>>> ['app', 'foo', 'cow']

扫码关注云+社区

领取腾讯云代金券