0

ここでこのリストを検討してください。

example=[]  

そしてもう一つ:

python=["hi","bye","hello","yes","no"]

Python から例に要素の 1 つを追加することにした場合、その要素 b の複製が作成されるか、変数 python が要素を失います。

example+=[python[0]]

したがって、文字列「hi」は、前述の例を使用して複製または例に転送されますか

4

5 に答える 5

2

文字列「hi」は文字に分割されexample、実行時に割り当てられますexample+=python[0]

したがってexample、この場合は が含まれます['h','i']

また、リストpythonは要素を失いません。

于 2013-07-29T17:47:12.563 に答える
1

いいえ、「譲渡」はありません。これは、操作後に値を出力するだけで簡単に確認できます。

代わりに、リストの例では、最初の文字列の要素が追加されます。

>>> f = []
>>> f+= ["hi", "there"][0]
>>> f
['h', 'i']

これは、a += bが と概念的に*同等a = a+bであり、のすべての要素の後にの要素が続くa+bリストを作成するために発生します。文字列はシーケンスであり、その要素は個々の文字で構成される文字列であるため、この動作が発生します。ab

*違いがありますが、特にそれは機能しlist + nonlistません。

于 2013-07-29T17:47:49.940 に答える
0

Python リストには、要素への参照のみが格納されます。要素 (ここでは文字列) は外部オブジェクトとして格納されます。

Python 割り当ては、参照値のみをコピーします。このように、リストは参照を格納する動的配列として実装されます。

リストに文字列を挿入すると、ソース文字列オブジェクトはコピーされず、同じオブジェクトへの参照のみがコピーされます。ソース要素 (ここでは ) は、割り当ての右側で使用された場合python[0]、リストから削除されません。python読み取られるだけで、そのまま残されます。

于 2013-07-30T06:12:32.130 に答える
0

では、文字列「こんにちは」は複製または転送されますか?

いいえ、文字列"hi"は複製も転送もされません。むしろ、バインド先のオブジェクトの長さがexample1 増加し、バインド先のexample[0]オブジェクトに参照python[0]がバインドされます。さらに、参照pythonもそれがバインドされているオブジェクトも変更されません。

また、質問の例にはエラーがあることに注意してください。実際に言ったところで、

example += python[0]

あなたは確かに言うつもりでした:

example += [python[0]]
于 2013-07-29T17:51:24.600 に答える
-2

次の example.append(python[0] を実行する必要があります。これにより、「hi」が取得され、例にコピーされます

于 2013-07-29T17:49:32.927 に答える