将整数添加到整数列表中的每个值

时间:2013-03-05 04:24:48

标签: python

感觉像个傻瓜,因为我知道我知道怎么做......

我有一堆数字列表:

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)

? (如果能起作用的话,我不知道如何知道我的头脑,但是如果它没有......我就知道如何修复它。)

3 个答案:

答案 0 :(得分: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]

答案 1 :(得分:4)

List comprehensions(或Python docs相同):

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]

答案 2 :(得分:1)

如果您寻求其他方式:

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

如果要将简单函数应用于列表

的所有项目,请查看map