🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
for

for文は、様々なプログラミング言語で使われている制御構造です。for文に定義している条件から外れるまで、for文内の命令文を繰り返し実行します。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

while

Whileは多くの言語で使われるコントロール構造であり、特定の条件が満たされる限り一連の命令を繰り返し実行します。

Q&A

解決済

5回答

2706閲覧

リスト{1,1,2,2,3,3,4,4,5,5・・・100,100}の作成方法がよくわからないです

退会済みユーザー

退会済みユーザー

総合スコア0

for

for文は、様々なプログラミング言語で使われている制御構造です。for文に定義している条件から外れるまで、for文内の命令文を繰り返し実行します。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

while

Whileは多くの言語で使われるコントロール構造であり、特定の条件が満たされる限り一連の命令を繰り返し実行します。

0グッド

2クリップ

投稿2024/04/26 18:00

編集2024/04/27 02:37

実現したいこと

タイトルはどう書けばいいかよくわからなかったためあのようなタイトルになっています。Pythonでリストxに格納されているint型のランダムな数字が格納されています。
以下のようにxの2倍の長さの新しいリストcent_xにxに格納されている数字を入れたいです

cent_x[0]=x[0]
cent_x[1]=x[0]
cent_x[2]=x[1]
cent_x[3]=x[1]
cent_x[4]=x[2]
cent_x[5]=x[2]
cent_x[6]=x[3]
cent_x[7]=x[3]
:
:

発生している問題・分からないこと

リストにxの値を書き込むことはできるのですが2重ループを使ってやればいいのでしょうか

該当のソースコード

Python

1cent_x=[] 2for i in range(len(x)*2): 3 cent_x.append(i) 4 print(cent_x[i]) 5
242 482 411 414 225 489 293 221 -41 42 139 268 356 480 485 412 366 301 354 310 409 448 522 431 全てint型 64行

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

補足

特になし

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答5

0

ベストアンサー

cent_x.append(x[i])
を2回行えば、良いかと思います。

pyhton3

1x = [] 2for i in range(100): 3 x.append(i+1) 4 5cent_x=[] 6for i in range(len(x)): 7 cent_x.append(x[i]) 8 cent_x.append(x[i]) 9 10print(cent_x) 11

実行結果
[1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, 15, 15, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, 23, 23, 24, 24, 25, 25, 26, 26, 27, 27, 28, 28, 29, 29, 30, 30, 31, 31, 32, 32, 33, 33, 34, 34, 35, 35, 36, 36, 37, 37, 38, 38, 39, 39, 40, 40, 41, 41, 42, 42, 43, 43, 44, 44, 45, 45, 46, 46, 47, 47, 48, 48, 49, 49, 50, 50, 51, 51, 52, 52, 53, 53, 54, 54, 55, 55, 56, 56, 57, 57, 58, 58, 59, 59, 60, 60, 61, 61, 62, 62, 63, 63, 64, 64, 65, 65, 66, 66, 67, 67, 68, 68, 69, 69, 70, 70, 71, 71, 72, 72, 73, 73, 74, 74, 75, 75, 76, 76, 77, 77, 78, 78, 79, 79, 80, 80, 81, 81, 82, 82, 83, 83, 84, 84, 85, 85, 86, 86, 87, 87, 88, 88, 89, 89, 90, 90, 91, 91, 92, 92, 93, 93, 94, 94, 95, 95, 96, 96, 97, 97, 98, 98, 99, 99, 100, 100]

投稿2024/04/26 23:57

tatsu99

総合スコア5493

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

extend() メソッドを使うとよいかと思います。

python

1import random 2 3x = random.choices(range(0, 100), k=100) 4 5# 6cent_x = [] 7for i in x: 8 cent_x.extend((i, i)) 9 10print(cent_x)

投稿2024/04/26 19:10

melian

総合スコア20592

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2024/04/27 02:34

回答ありがとうございます。 試したところ問題が解決しました! ベストアンサーに選ばせていただきました。
guest

0

回答ではないのですが、面白そうだったので考えたり検索したら以下のstack overflow をみつけたので共有します。
誘導されている別スレを併せて面白い回答が沢山あります。

https://stackoverflow.com/questions/2449077/duplicate-each-member-in-a-list

以下の2つは興味深い。

python

1# その1 2[i for i in x for _ in xrange(2)] 3 4# その2 5x[:0] = x[::2] = x[1::2] = x[:]

その2は衝撃的。 なんでこれでできるのかこれから考えてみます。

ちなみに検索ワードは
python dupulicate contents of the list
です。

投稿2024/04/27 02:31

TakaiY

総合スコア13733

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

0

標準ライブラリの便利な関数使うのとか、言語の機能をフル活用するのとか、いろんなやり方出てますね。素朴にインデックス同士の対応を考えればこんなのでもいいんでは?少なくともC言語以前からある原始的な方法ですが。

python

1cent_x=[] 2for i in range(len(x)*2): 3 cent_x[i] = x[i // 2] 4 print(cent_x[i]) 5

投稿2024/04/30 23:17

marie_222

総合スコア29

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

似たようなのは出てますがせっかく書いたんで

python

1x = [i+1 for i in range(100)] 2cent_x = [None]*200 3cent_x[::2] = x 4cent_x[1::2] = x 5print(cent_x)

投稿2024/04/27 11:22

takasima20

総合スコア7460

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問