-11

type1type2、および- の 3 つのパラメーターを受け取り、インデックスに挿入されたの要素をindex返す関数を作成したいと考えています。type1type2

ここにいくつかのサンプル I/O があります

do_something ([21, 32, 23], ['f', 'g', 'c'], 2)

[21, 32, 'f', 'g', 'c', 23]

これは私がこれまでに持っているものです:

def do_something(type1, type2, index)

return do_something

明らかに私はここで何か間違ったことをしていますが、何がわかりません。

4

4 に答える 4

3

これはあなたの質問に答え、あなたが望むことをすると思います:

def do_something(list1, list2, index):
    list1[index:index] = list2
    return list1

print(do_something([21, 32, 23], ['f', 'g', 'c'], 2))

出力:

[21, 32, 'f', 'g', 'c', 23]
于 2013-10-15T19:25:12.350 に答える
1

インデックスでリストにアクセスする方法がわからない場合は、インデックス アクセス演算子を使用します。[]

>>> x = [1, 2, 3]
>>> x
[1, 2, 3]
>>> x[1] = 99
>>> x
[1, 99, 3]
>>> x[2] = [1,2,3]
>>> x
[1, 99, [1, 2, 3]]

インタラクティブ通訳はあなたの友達です!dir(list)機能もhelp()フレンドリーです。

于 2013-10-15T19:19:06.223 に答える
0

パラメータがリストのインデックスである場合、「インデックス」はパラメータ名として完全に問題ありません。"list" や "str" など、Python には避けるべき名前がいくつかありますが、"index" はその 1 つではありません。パラメータの意味が不明確だと思われる場合は、いつでも関数にコメントまたは docstring を追加できます。


関数本体に関しては、次の表記法を使用して別のリストをリストに挿入できます。

def do_something(type1, type2, index):
    type1[index:index] = type2

これが行うことは次のとおりです。リストの要素を(含む)type1から(含まない)まで取り、それらを指定されたリストに置き換えます。スライスは空なので、実際に置き換えられる要素はありませんが、2 番目のリストがその位置に挿入されます。indexindex

これにより、元のリストが変更されることに注意してくださいtype1。代わりにこれを使用して、新しいリストを作成して返します。

def do_something(type1, type2, index):
    return type1[:index] + type2 + type1[index:]

これは、type1up to index(除外) の要素を取得し、それらをfromおよびそれ以降 (included)type2の要素と連結します。type1index

どちらの場合も、結果は

[21, 32, 'f', 'g', 'c', 23]
于 2013-10-15T19:20:03.840 に答える
0

インデックスは特別な種類のパラメーターではありません。他のものと同じように渡します。あなたが持っているものは問題ありませんが、def ステートメントと return ステートメントの間に関数を記述する方法を理解する必要があります。ドキュメントを見て、特定の質問がある場合は戻ってきて、試したことを示すことができます。

于 2013-10-15T19:17:42.743 に答える