質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Python 2.7

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

Q&A

解決済

2回答

1148閲覧

Python で Ruby のように配列の値を決めるには?

manman

総合スコア233

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Python 2.7

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

0グッド

0クリップ

投稿2015/08/12 14:17

Ruby

1irb(main):001:0> a = (0..3).to_a 2=> [0, 1, 2, 3] 3irb(main):002:0> a[8] = 8 4=> 8 5irb(main):003:0> a 6=> [0, 1, 2, 3, nil, nil, nil, nil, 8]

上記のような作業をPythonで簡単に行いたいと思います。
下記においてどのように続ければよろしいでしょうか?

Python

1>>> a = range(4) 2>>> a 3[0, 1, 2, 3] 4>>> ???

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

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

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

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

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

guest

回答2

0

ベストアンサー

Pythonの仕様では、シーケンス型のサイズを自動拡張する機能はありません。
敢えてその動作を得るには、なにかしら実装する必要があります。

Pythonで書いていてこういう実装を必要としたことがなかったので、"python sequence auto-expand" で検索してみましたら、サンプル実装の提示されているQ&Aが出てきましたので記載しておきます。
("defaultlist" というクラス実装の提示されている書き込みです)

投稿2015/08/12 19:17

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

0

うーん,Rubyみたいに配列を自動で長くしてくれるかはわからないです.
(純粋なPythonではできないんじゃないかと思います.確信ないですが.)

リストの連結を使って書くのはどうでしょうか.

python

1a = range(4) 2a = a + [None]*4 + [8]

もしくは多めにNoneを付加しておいて上書きするとか.

python

1a = range(4) 2a = a + [None]*10 3a[8] = 8

投稿2015/08/12 15:02

KenTerada

総合スコア751

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問