如果只有一个元素,则Python将被拆分
我正在尝试进行Python拆分,但我的逻辑似乎有问题 我有一些数据,用分号分隔。我的一些数据示例如下:如果只有一个元素,则Python将被拆分,python,split,Python,Split,我正在尝试进行Python拆分,但我的逻辑似乎有问题 我有一些数据,用分号分隔。我的一些数据示例如下: 89;50;二十 四十 我只想从每行中检索一个值。例如,在第1行中,我只需要最后一个值,即20,我需要第二行中的40 我尝试使用以下代码: fields = fields.split(";")[-1] 第一排有效,我得了20分。但我无法从第二行获取数据,因为它在拆分中只有一个元素 然后我尝试使用下面的if-else条件,但代码无法运行 if (len(fields.split(";"))
- 89;50;二十
- 四十
fields = fields.split(";")[-1]
第一排有效,我得了20分。但我无法从第二行获取数据,因为它在拆分中只有一个元素
然后我尝试使用下面的if-else条件,但代码无法运行
if (len(fields.split(";")) > 0):
fields = fields.split(";")[-1]
else:
pass
有人知道如何处理这个问题吗?我的目标是,如果该行中只有1个值,我将读取它。如果有多个值,我将其拆分并取最后一个值。使用
strip
来规范化输入,问题是有一个额外的代码>用于一个数字的情况,因此我们应该首先删除它
In [1]: def lnum(s):
...: return s.strip(';').split(';')[-1]
...:
In [2]: lnum('89;50;20')
Out[2]: '20'
In [3]: lnum('89;')
Out[3]: '89'
In [5]: lnum('10;')
Out[5]: '10'
使用条带
来规范化输入,问题是有额外的代码>用于一个数字的情况,因此我们应该首先删除它
In [1]: def lnum(s):
...: return s.strip(';').split(';')[-1]
...:
In [2]: lnum('89;50;20')
Out[2]: '20'
In [3]: lnum('89;')
Out[3]: '89'
In [5]: lnum('10;')
Out[5]: '10'
因此,如果您看到在拆分字符串时-'40;'
使用分号(;
),可以得到两个字符串的列表-['40','']
。因此,fields.split(“;”[-1]
为输入返回一个空字符串'40;'代码>
所以,要么去掉最后一个分号代码>在拆分之前,如下所示
print('40;'.rstrip(';').split(';')[-1])
或者,您可以执行以下操作:
fields = '40;'.split(';')
if fields[-1]:
print(fields[-1])
else:
print(fields[-2])
我更喜欢第一种方法,而不是if/else
方法。另外,请查看函数。因此,如果您在拆分字符串时看到-'40;'
使用分号(;
),可以得到两个字符串的列表-['40','']
。因此,fields.split(“;”[-1]
为输入返回一个空字符串'40;'代码>
所以,要么去掉最后一个分号代码>在拆分之前,如下所示
print('40;'.rstrip(';').split(';')[-1])
或者,您可以执行以下操作:
fields = '40;'.split(';')
if fields[-1]:
print(fields[-1])
else:
print(fields[-2])
我更喜欢第一种方法,而不是if/else
方法。另外,请查看功能。另一种方法是使用re模块
from re import findall
s1 = '80;778;20'
s2 = '40'
res1 = findall( '\d+', s1)
res2 = findall( '\d+', s2)
print res1[-1]
print res2[-1]
另一种方法是使用re模块
from re import findall
s1 = '80;778;20'
s2 = '40'
res1 = findall( '\d+', s1)
res2 = findall( '\d+', s2)
print res1[-1]
print res2[-1]
更好地使用rstrip
更好地使用rstrip
您好,对不起,我删除了第二行数据中的分号,刚刚意识到如果只有一个元素,那么末尾将没有分号。@decemberrobot,那么您不应该有任何错误!!您好,很抱歉,我删除了第二行数据中的分号,刚刚意识到如果只有一个元素,那么末尾将没有分号。@decemberrobot,那么您不应该有任何错误!!