1
some_list = [[1, 2], [3, 4], [5, 6]]

になる

some_list = [[1, 2, 10, 11], [3, 4, 10, 11], [5, 6, 10, 11]]

個々のリスト (リスト内) を共通リスト (この場合は[10, 11]) で拡張します。

これを行うための簡単な方法が必要です。

4

4 に答える 4

1

マップ手法:

>>> some_list = [[1, 2], [3, 4], [5, 6]]
>>> some_list = map(lambda i : i + [10,11], some_list)
>>> some_list
[[1, 2, 10, 11], [3, 4, 10, 11], [5, 6, 10, 11]]

他の:

>>> some_list = [[1, 2], [3, 4], [5, 6]]
>>> for i in some_list:
...     i.extend([10,11])
... 
>>> some_list
[[1, 2, 10, 11], [3, 4, 10, 11], [5, 6, 10, 11]]

スライスの使用:

>>> some_list = [[1, 2], [3, 4], [5, 6]]
>>> for i in some_list:
...     i[len(i):] = [10,11]
... 
>>> some_list
[[1, 2, 10, 11], [3, 4, 10, 11], [5, 6, 10, 11]]
于 2013-01-04T06:27:56.840 に答える
0

コンテナ内の各アイテムに対してメソッドを実行して結果を取得するのは、次のコードを使用するとかなり簡単です。

class Apply(tuple):

    "Create a container that can run a method from its contents."

    def __getattr__(self, name):
        "Get a virtual method to map and apply to the contents."
        return self.__Method(self, name)

    class __Method:

        "Provide a virtual method that can be called on the array."

        def __init__(self, array, name):
            "Initialize the method with array and method name."
            self.__array = array
            self.__name = name

        def __call__(self, *args, **kwargs):
            "Execute method on contents with provided arguments."
            name, error, buffer = self.__name, False, []
            for item in self.__array:
                attr = getattr(item, name)
                try:
                    data = attr(*args, **kwargs)
                except Exception as problem:
                    error = problem
                else:
                    if not error:
                        buffer.append(data)
            if error:
                raise error
            return tuple(buffer)

あなたの場合、メインコンテナ内の各リストを拡張するために、次のように記述します。

some_list = [[1, 2], [3, 4], [5, 6]]
Apply(some_list).extend([10, 11])
print(some_list)
于 2013-01-04T15:30:36.873 に答える