Python
 Computer >> コンピューター >  >> プログラミング >> Python

Python a +=bは必ずしもa=a+bではありません


2つの変数が同じデータ型であり、リストやディクショナリなどのイテレータではない場合、式a +=bはa=+bと同じ結果になります。しかし、nイテレータが関係している場合、常に同じことを期待できるとは限りません。以下はそのようなシナリオの1つです。

a =a+bの場合

ここで、式をリストと文字列に適用すると、それらがマージされることを期待している場合、エラーが返されます。

x ='Hello '
z_list = [1,2,3]
z_list = z_list + x
print(z_list)

出力

上記のコードを実行すると、次の結果が得られます-

Traceback (most recent call last):
   File "C:\Users\Pradeep\AppData\Roaming\JetBrains\PyCharmCE2020.3\scratches\scratch.py", line 11, in
      z_list = z_list + x
TypeError: can only concatenate list (not "str") to list

a +=bの場合

しかし、式a + =bを適用すると、スティングが暗黙的に一連の要素に変換されてリストの一部になることがわかります。

z_list = [1,2,3]
x ='Hello'
z_list += x
print(z_list)

出力

上記のコードを実行すると、次の結果が得られます-

[1, 2, 3, 'H', 'e', 'l', 'l', 'o']

  1. Pythonでヒープが最大ヒープを形成しているかどうかを確認するプログラム

    ヒープツリーを表すリストがあるとします。私たちが知っているように、ヒープは完全な二分木です。要素が最大ヒープを形成しているかどうかを確認する必要があります。最大ヒープについて知っているように、すべての要素はその子の両方よりも大きくなります。 したがって、入力がnums =[8、6、4、2、0、3]のような場合、すべての要素が子よりも大きいため、出力はTrueになります。 これを解決するには、次の手順に従います- n:=numsのサイズ 0からn-1の範囲のiの場合、do m:=i * 2 num:=nums [i] m + 1

  2. PythonでNが二面素数であるかどうかを確認します

    数nがあるとします。 nが二面素数であるかどうかを確認する必要があります。数自体が素数であり、ディスプレイの向き(通常または上下逆)に関係なく、7セグメントディスプレイを使用して同じ数または他の素数が表示される場合、その数は二面素数であると言われます。 したがって、入力がn =1181のような場合、出力はTrueになります 2つ目は、1つ目の逆さまの形式で、どちらも素数です。 これを解決するには、次の手順に従います- 関数up_side_down()を定義します。これにはnがかかります temp:=n、total:=0 0の場合、do d:=temp mod 10