给定以下字符串列表:
my_list = ['element0 123 321\n', 'element1 223 32221\n', 'element2 19823 328771\n', ... ]
如何将每个条目拆分为元组列表:
[ (123, 321), (223, 32221), (19823, 328771), ... ]
在我另一次失败的尝试中,我成功地提取了数字,但是我遇到了一个问题,元素占位符也包含了这个方法包含的一个数字!它也不会写入tuple
,而是写入list
numbers = list()
for s in my_list:
for x in s:
if x.isdigit():
numbers.append((x))
numbers
您的尝试在字符串的每个字符上迭代。你必须按空格分开这根线。一项
str.split
完美完成的任务而且
numbers.append((x))
是numbers.append(x)
。对于由1个元素组成的元组,请在右括号前添加逗号。即使这也解决不了问题现在,该列表似乎包含一个id(跳过),然后2个整数作为字符串,那么为什么不拆分、zap第一个标记并转换为整数元组呢
提供:
我们可以首先构建一个正则表达式,用于识别正整数:
这里
\d
代表数字(因此0
,1
,等等),一个或多个的+
,和\b
是单词边界然后我们可以使用
INTEGER_REGEX.findall(some_string)
从输入中识别所有正整数。现在唯一要做的就是遍历列表的元素,并将INTEGER_REGEX.findall(..)
的输出转换为元组。我们可以通过以下方式实现:对于给定的样本数据,这将产生:
请注意,不是单独单词的数字将不匹配。例如,
'see you l8er'
中的8
将不匹配,因为它不是一个单词相关问题 更多 >
编程相关推荐