-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 を使用するのが 1 つの方法です。

>>> 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 に答える