我有一个大型数组,格式为
a = np.array([['#define', 'name_1', '(value1) /*comment 1*/'],
['#define', 'name_2', '(value2) /*comment 2*/'],
['#define', 'name_3', '(value3) /*comment 3*/'],
['#define', 'name_4', '(value4) /*comment 4*/']])
第3列的字符串有注解,我只需要保留括号内的“value”部分,即(0x123)。输出如下所示
[['#define', 'name_1', '(value1)'],
['#define', 'name_2', '(value2)'],
['#define', 'name_3', '(value3)'],
['#define', 'name_4', '(value4)']]
我会很感激任何帮助,谢谢。
3条答案
按热度按时间wwodge7n1#
选项1:使用
.split()
拆分/*
,仅保留第一部分value
选项2:使用
re.sub()
将\**\
包围的注解部分替换为""
输出:
eaf3rand2#
下面是一个向量化的单行程序,它没有使用任何for循环或嵌套NumPy操作。
第一个
从技术上讲,对于您的示例,由于其他字符串的长度小于8,因此可以只使用
a.astype('<U8')
,但在应用于整个数组时要小心。第一次
但请注意,这将对所有其他单元格应用长度为8的限制。
woobm2wo3#
您应该使用正则表达式从
'(value1) /*comment 1*/'
中提取(value)
。要使用regex获取
(value)
,您应该导入python中的re
库。输出功率