4

この方法でリストからデータを抽出する場合

line[0:3], line[3][:2], line[3][2:]

当然のことながら、配列とその後に 2 つの変数を受け取ります。

(['a', 'b', 'c'], 'd', 'e')

リストを操作する必要があるため、最終結果は

('a', 'b', 'c', 'd', 'e')

どのように?ありがとうございました。

PSはい、最初の要素を として書き留めることができることは知っていline[0], line[1], line[2]ますが、それはかなり厄介な解決策だと思います。

4

5 に答える 5

4
from itertools import chain
print tuple(chain(['a', 'b', 'c'], 'd', 'e'))

出力:

('a', 'b', 'c', 'd','e')
于 2010-11-30T18:31:24.783 に答える
1

これを試して。

line = ['a', 'b', 'c', 'de']
tuple(line[0:3] + [line[3][:1]] + [line[3][1:]])
('a', 'b', 'c', 'd', 'e')

注:スライスロジックには面白いビジネスがあると思います。[2:] が任意の文字を返す場合、[:2] は 2 文字を返す必要があります。入力行を入力してください。

于 2010-11-30T18:25:48.310 に答える
1

明白な答え: 最初の行の代わりに、次のようにします。

line[0:3] + [line[3][:2], line[3][2:]]

それline[0:3]がリストであると仮定して動作します。それ以外の場合は、若干の調整が必要になる場合があります。

于 2010-11-30T18:29:09.807 に答える
0
def is_iterable(i):
    return hasattr(i,'__iter__')

def iterative_flatten(List):
    for item in List:
        if is_iterable(item):
            for sub_item in iterative_flatten(item):
                yield sub_item
        else:
            yield item

def flatten_iterable(to_flatten):
    return tuple(iterative_flatten(to_flatten))

これは、どのレベルのネストでも機能するはずです

于 2010-11-30T19:10:23.233 に答える
0

この機能

def merge(seq):
    merged = []
    for s in seq:
        for x in s:
            merged.append(x)
    return merged 

ソース: http://www.testingreflections.com/node/view/4930

于 2010-11-30T18:15:03.577 に答える