

作成したリストに2をかけた値を計算し表示したく、以下のコードを書いたのですがうまくできません。どうしたらよいでしょうか？

[code]

    numbers = [1, 3, 5, 7]
    for n in numbers*2:
        print(n)
    
[/code]

実行結果

[code]

    1
    3
    5
    7
    1
    3
    5
    7
    
[/code]


CC BY-SA 4.0
2022-02-01T04:32:01.630
86059
2022-02-01T07:34:26.470
2022-02-01T05:08:39.107
9820
51139
question
python
リストの表示ができません


解法は下記コードのように複数考えられます。  
`numbers*2`は **配列そのものを2倍にする** ので、そこを見直してください。  
`numbers = [1, 3, 5, 7]`なので、`numbers*2`は`[1, 3, 5, 7][1, 3, 5, 7]`→`[1, 3, 5,
7, 1, 3, 5, 7]`のイメージで計算されます。

※ご質問のように要素ごとに改行しながらprintするよう修正しました。  
※末尾の Ex. を実行するにはnumpyパッケージをインストールする必要があります。

[code]

    numbers = [1, 3, 5, 7]
    
    print("1. numbersの個数分インデックスを加算しながらループして配列内の項目それぞれの値を2倍する")
    for i in range(len(numbers)):
        print(numbers[i]*2)
    
    print("2. numbersを1つずつ取り出して2倍した値を表示する")
    numbers = [1, 3, 5, 7]
    for n in numbers:
        print(n*2)
    
    print("3. 内包表記で配列内の全項目に2を掛け、mapで配列要素にprint関数を適用して表示する")
    list(map(print, [n*2 for n in numbers]))
    
    print("Ex. numpyを使って2倍したnp.arrayを展開して改行文字区切りで一括printする")
    import numpy as np
    ar = np.array(numbers)
    print(*(ar * 2), sep="\n")
    
[/code]


CC BY-SA 4.0
2022-02-01T05:07:49.103
86061
2022-02-01T07:34:26.470
2022-02-01T07:34:26.470
9820
9820
86059
answer