当前位置:  开发笔记 > 编程语言 > 正文

我如何在Python中用C执行strtok()的操作?

如何解决《我如何在Python中用C执行strtok()的操作?》经验,为你挑选了1个好方法。

我正在学习Python并试图找出一种有效的方法来将由逗号分隔的数字串标记化为列表.格式良好的案例正如我所期望的那样起作用,但形成较少的案例并非如此.

如果我有这个:

A = '1,2,3,4'
B = [int(x) for x in A.split(',')]

B results in [1, 2, 3, 4]

这是我所期望的,但如果字符串更像是

A = '1,,2,3,4,'

如果我使用与上面相同的列表推导表达式,我得到一个例外.我想我理解为什么(因为一些"x"字符串值不是整数),但我认为有一种方法可以解析这个仍然相当优雅,这样字符串a的标记化工作更直接像strtok(A,",\n\t")在C中迭代调用时会完成.

要清楚我在问什么; 我在Python中寻找一种优雅/高效/典型的方式来拥有以下所有字符串示例:

A='1,,2,3,\n,4,\n'
A='1,2,3,4'
A=',1,2,3,4,\t\n'
A='\n\t,1,2,3,,4\n'

返回相同的列表:

B=[1,2,3,4]

通过某种紧凑的表达方式.



1> Dave Ray..:

这个怎么样:

A = '1, 2,,3,4  '
B = [int(x) for x in A.split(',') if x.strip()]

x.strip()修剪字符串中的空格,如果字符串全部为空格,则将其设为空.布尔上下文中的空字符串为"false",因此它由列表推导的if部分过滤.


+1没有测试,它将失败,例如a ="1,2,3,4"
推荐阅读
围脖上的博博_771
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有