我的搜索技能需要改进,因为我找不到(或理解)任何可能对我有帮助的东西,从这个数组中提取......
qtyList = ['[40', '68]', '[18', '10]']
我试图只提取整数和/或将其放在不同的数组中,这样它看起来像......
qtyList = [40, 68, 18, 10]
我认为 str_split 可能有效,但我很确定我弄乱了语法。我试过...
array str_split($qtyList, "[")
那没有用。
我的搜索技能需要改进,因为我找不到(或理解)任何可能对我有帮助的东西,从这个数组中提取......
qtyList = ['[40', '68]', '[18', '10]']
我试图只提取整数和/或将其放在不同的数组中,这样它看起来像......
qtyList = [40, 68, 18, 10]
我认为 str_split 可能有效,但我很确定我弄乱了语法。我试过...
array str_split($qtyList, "[")
那没有用。
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]
使用 list-comp 和 regexp 是一种方法:
>>> qtyList = ['[40', '68]', '[18', '10]']
>>> import re
>>> [int(re.search('\d+', el).group()) for el in qtyList]
[40, 68, 18, 10]
这是一种遍历列表中每个列表项的方法。
for item in qtyList:
for x in item:
newList.append(x)