我正在参加python的在线课程。我已经在这里待了两个星期。我编写了以下代码来查找示例文本文档中的数字。我遇到的问题是,当我从一行移动到另一行并运行正则表达式时,它找到第一组数字,然后跳过该行上的任何剩余数字并移动到下一行,它只匹配第一个数字线。我的代码如下:
BackSpace
答案 0 :(得分:3)
你明确告诉它跳过所有数字,但第一个:
num = int(nums[0])
而是使用列表推导来强制int
并使用extend()
附加整个列表。
numlist.extend([int(x) for x in num])
答案 1 :(得分:1)
正如其他人已经注意到的那样,您将丢弃列表中的所有其他数字并仅使用第一个元素。您可以使用map
函数将数字转换为int
,然后扩展列表
for line in fh:
nums = re.findall('[0-9]+',line)
if len(nums) < 1 : continue
nums = map(int, nums)
numlist.extend(nums)
答案 2 :(得分:0)
问题是您没有在nums
上循环,只是在nums
列表中追加第一项。
要解决此问题,您应该迭代nums
并附加每个项目。