-3

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

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

我试图只提取整数和/或将其放在不同的数组中,这样它看起来像......

qtyList = [40, 68, 18, 10]

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

array str_split($qtyList, "[")

那没有用。

4

3 回答 3

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]
于 2013-01-17T17:11:58.763 回答
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]
于 2013-01-17T17:12:14.580 回答
0

这是一种遍历列表中每个列表项的方法。

for item in qtyList:
    for x in item:
        newList.append(x)
于 2013-01-17T18:01:53.720 回答