some_list = [[1, 2], [3, 4], [5, 6]]
になる
some_list = [[1, 2, 10, 11], [3, 4, 10, 11], [5, 6, 10, 11]]
個々のリスト (リスト内) を共通リスト (この場合は[10, 11]
) で拡張します。
これを行うための簡単な方法が必要です。
some_list = [[1, 2], [3, 4], [5, 6]]
になる
some_list = [[1, 2, 10, 11], [3, 4, 10, 11], [5, 6, 10, 11]]
個々のリスト (リスト内) を共通リスト (この場合は[10, 11]
) で拡張します。
これを行うための簡単な方法が必要です。
マップ手法:
>>> 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]]
コンテナ内の各アイテムに対してメソッドを実行して結果を取得するのは、次のコードを使用するとかなり簡単です。
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)