感觉像个傻瓜,因为我知道我知道怎么做......
我有一堆数字列表:
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)
? (如果能起作用的话,我不知道如何知道我的头脑,但是如果它没有......我就知道如何修复它。)
答案 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)