0

我正在尝试修复访问表中字段中的值。这些值看起来像这样

G45-f1
C43-m1
C6-h1
M90_N9-h1
K9_Y7-h2

我想切掉破折号“-”之前的所有内容并删除其余部分,如下所示:

G45
C43
C6
M90_N9
K9_Y7

我知道我可以在 dash 处拆分值x.split("-"),但我不确定如何删除其余部分。欢迎大家提出意见。

4

3 回答 3

2

str.split()总是返回一个包含至少一个元素的列表,只需选择结果的第一个元素即可忽略其余元素:

x.split('-')[0]

您可能想要限制拆分计数,因为无论如何您都丢弃了除第一部分之外的所有内容:

x.split('-', 1)[0]
于 2013-05-17T20:53:38.783 回答
1

您可以使用str.split,但也可以使用str.partitionwhich 只拆分到第一次出现并且始终保证返回一个 3 元组...(headdelimitertail):

>>> print 'M90_N9-h1'.partition('-')[0]
M90_N9

这样做的好处是,如果您想要tail,那么即使分隔符不存在,它也将是一个空字符串,而不是IndexError通过str.split.

于 2013-05-17T21:15:26.480 回答
0

您可以创建一个新列表

newlist = [x.split('-')[0] for x in oldlist]
于 2013-05-17T20:56:02.600 回答