1

私はこれを行う方法を知っているので、完全なバカのように感じます...

たくさんの数字のリストがあります:

nums = [100,200,300,400,500]

これらすべての数字に 1 を加えて、古いリストを保持したまま新しいリストにコピーしたいと思います。だから私はで終わるだろう

nums = [100,200,300,400,500]
moreNums = [101,201,301,401,501]
evenMoreNums = [102,202,302,402,502]

これを行う簡単な方法はありますか、それともまだ次のようなものになる最も簡単な方法ですか

for i in range (nums):
    moreNums.append(i + 1)

? (それが機能するかどうかを頭の中で知るのに十分なことはわかりませんが、機能しない場合の修正方法は知っています...)

4

3 に答える 3

5
In [65]: nums = [100,200,300,400,500]

In [66]: nums1 = [x + 1 for x in nums]

In [67]: nums1
Out[67]: [101, 201, 301, 401, 501]
于 2013-03-05T04:25:50.730 に答える
4

リスト内包表記(または同じPython ドキュメント):

nums = [100,200,300,400,500]
nums = [e+1 for e in nums]
# etc

例:

>>> nums=range(100,600,100)
>>> nums
[100, 200, 300, 400, 500]
>>> nums=[e+1 for e in nums]
>>> nums
[101, 201, 301, 401, 501]
>>> nums=[e+1 for e in nums]
>>> nums
[102, 202, 302, 402, 502]

または、あなたの名前を正確に使用したい場合:

>>> nums=range(100,600,100)
>>> moreNums=[e+1 for e in nums]
>>> evenMoreNums=[e+1 for e in moreNums]
>>> print nums,moreNums,evenMoreNums
[100, 200, 300, 400, 500] [101, 201, 301, 401, 501] [102, 202, 302, 402, 502]
于 2013-03-05T04:26:26.437 に答える
1

別の方法を探す場合:

nums = [100,200,300,400,500]
map(lambda x: x+1, nums)

リストのすべての項目に簡単な関数を適用したい場合は、 mapを見てください。

于 2013-03-05T04:29:41.863 に答える