遍历python列表并将数字输出到列表

时间:2018-11-28 21:17:29

标签: python python-2.7

我已经绞尽脑汁了几天。我是Python的新手,试图弄清楚如何分割字符串并将所需的内容输出到列表中。我正在尝试从字符串中选择一个整数(无论数字中的位数),并将其存储在变量中以备将来使用。我的字符串列表如下所示:

["<foo>1</foo>", "<foo>2</foo>", "<foo>3</foo>", "<foo>4</foo>", "<foo>5</foo>", "<foo>6</foo>", "<foo>7</foo>", "<foo>8</foo>", "<foo>9</foo>", "<foo>10</foo>"]

我对for循环和python的基本概念非常熟悉,但是不确定我是否咬得太多了。

编辑:我的脚本中已经有该列表。挑战在于删除数字周围的字符,仅将数字保留在列表中。

2 个答案:

答案 0 :(得分:1)

Python的list()函数会将任何字符串转换为列表。另外,在字符串上执行for循环时,它将循环访问每个字符。因此,由于您想要的是一个列表,其中的项是<foo> </foo>,包围字符串中的每个数字:

>>> n = 1234567
>>> L = [ ('<foo>%s</foo>' % i) for i in list(str(n)) ]
>>> print(L)
['<foo>1</foo>', '<foo>2</foo>', '<foo>3</foo>', '<foo>4</foo>', '<foo>5</foo>', '<foo>6</foo>', '<foo>7</foo>']

答案 1 :(得分:0)

我想,您可以以此作为输入(如果我理解正确的话):

a = ["<foo>1</foo>", "<foo>2</foo>", "<foo>3</foo>", "<foo>4</foo>", "<foo>5</foo>", "<foo>6</foo>", "<foo>7</foo>", "<foo>8</foo>", "<foo>9</foo>", "<foo>10</foo>"]

在字符串中查找内容的最简单方法是使用正则表达式。 Python为此提供了re模块。您已经知道列表理解了,这是查找所有数字的一种简便方法:

b = [int(re.search(r"\d+", element).group()) for element in a]

\d+搜索一个或多个(+)位(\d)。