在数组中仅拆分或拉动整数 - python

时间:2013-01-17 17:07:38

标签: python

我的搜索技能需要改进,因为我无法找到(或理解)任何可能对我有帮助的东西,从这个数组中拉出来......

qtyList = ['[40', '68]', '[18', '10]']

我正试图将整数拉出来和/或将其放在不同的数组中,因此看起来像...

qtyList = [40, 68, 18, 10]

我认为str_split可能有效,但我很确定我搞砸了语法。我试过......

array str_split($qtyList, "[")

这不起作用。

3 个答案:

答案 0 :(得分:1)

In [1]: qtyList = ['[40', '68]', '[18', '10]']

一种方式:

In [2]: [int(s.replace('[', '').replace(']', '')) for s in qtyList]
Out[2]: [40, 68, 18, 10]

另一种方式:

In [3]: import re

In [4]: [int(re.sub('[\[\]]', '', s)) for s in qtyList]
Out[4]: [40, 68, 18, 10]

这是一种奇怪的方式,如果列表总是在您显示时交替显示:

In [5]: from itertools import cycle

In [6]: slices = cycle((slice(1, None), slice(None, -1)))

In [7]: [int(s[c]) for s, c in zip(qtyList, slices)]
Out[7]: [40, 68, 18, 10]

答案 1 :(得分:1)

使用list-comp和regexp是一种方式:

>>> qtyList = ['[40', '68]', '[18', '10]']
>>> import re
>>> [int(re.search('\d+', el).group()) for el in qtyList]
[40, 68, 18, 10]

答案 2 :(得分:0)

这是一种浏览列表中每个列表项的方法。

for item in qtyList:
    for x in item:
        newList.append(x)