ホームページ >バックエンド開発 >Python チュートリアル >Python での質問の例を共有する
奇数の前に偶数を入れて 3 秒以内に一連のデータを計算してください (for while などのループは使用しないことに注意してください)
形式は次のとおりです
1、2、3、4、 5, 6, 7, 8, 9, 10
出力結果は
2, 1, 4, 3, 6, 5, 8, 7, 10, 9
解決策のアイデア: for と while を使用して書き込むことができないため、ループ判定を行った後、位置置換から処理を行います。位置に関連する限り、最初に考えなければならないのは添え字とインデックスです。コードは次のとおりです。
data[0::2] は、データ リストの最初の位置から開始することを意味します。これは、数値 1:: から終了位置までを意味します。2 は、最初の数値と、 2 番目の数値は 2 つで区切られています。 ビット選択は、奇数 1、3、5、7、9 を選択することを意味します。
data[1::2] は、データ リストの 2 番目の位置、つまり数値 2::meaning から開始することを意味します。 1 つの数字と 2 番目の数字は 2 桁離れており、偶数 2、4、6、8、10 は次のように取得されます。
tmpここでの役割は一時的な保管場所であり、バブルソートと同じです。方法は非常に似ています。奇数を真ん中に格納することで、偶数を1桁進めてから、一時的に格納したデータを後退させて偶数の位置に配置して完成させます。
次の形式で出力を縦方向に印刷します (サードパーティのライブラリは使用しないでください):
1 5 9 13
2 6 10 14
3 7 11 15
4 8 12 16
解決策: まず、プログラムは 1 行ずつ実行され、プログラムは一般的に実行可能で規則的であると考える必要があります。実際、注意深く調べてみると、両者の差は実際には 4 です。これが見つかる限り、これです。問題を解決するのは難しくありません。コードは次のとおりです。
これを見るとすぐに、それらの差 4 は範囲ステップの数によって制御できることがわかります。最初の行では 1、5、9、13 が出力されます。 2 番目の行を注意深く見て、最初の行が数値に 1 を加えたものであることを確認してください。Python のデフォルトの範囲が 0 から始まる機能を使用し、各行を追加するだけで第 2 レベルの for ループが終了するたびに垂直方向の印刷を実現できます。 、 print は制御を実行するためにラップして完了するのに役立ちます。
いくつかの質問と解決策は随時更新されます。
いくつかの方法やテクニックについて話し合うために私にプライベートメッセージを送っていただくことも歓迎します。
最後に、見てくださった皆様、ありがとうございました! ! !
以上がPython での質問の例を共有するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。