首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从特定数字中减去列表中的所有元素

从特定数字中减去列表中的所有元素
EN

Stack Overflow用户
提问于 2017-01-11 21:46:54
回答 6查看 5.2K关注 0票数 3

我是否可以使用python从一个数字中减去我的列表?例如:

代码语言:javascript
复制
a = [2, 4, 6, 8, 10]

然后我会做1 - a

产出应是:

代码语言:javascript
复制
a = [-1, -3, -5, -7, -9] 

在我的代码中,a是从.csv文件中提取的浮动列表,这种操作在python中可能吗?

我是这样创建我的列表的:

代码语言:javascript
复制
f2 = 'C:/Users/.....csv'
with open(f2,'r') as csvfile:
    csvreader = csv.reader(csvfile)
    for line in csvreader:
        l2.append(list(line))

l2包含浮动列表。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2017-01-11 21:50:42

您可以使用列表理解。

代码语言:javascript
复制
>>> values = [2, 4, 6, 8, 10]
>>> [1 - value for value in values]
[-1, -3, -5, -7, -9]

编辑:如果您确实有一个列表:

代码语言:javascript
复制
>>> values = [[2, 4, 6], [8, 10, 12]]
>>> [[1 - value for value in sublist]
...   for sublist in values]
[[-1, -3, -5], [-7, -9, -11]]
票数 3
EN

Stack Overflow用户

发布于 2017-01-11 21:53:19

当然,你有很多选择,

代码语言:javascript
复制
number = 1
a = [2, 4, 6, 8, 10]
result = list()
# using for loop
for i in a:
    result.append(number-i)

print result
# using list comprehension
result = [number-x for x in a]
print result

# taking functional approach and applying a lambda function on each element
result = map(lambda x: number - x, a)
print result

如果你需要更多的解释,请告诉我。

编辑。目前还不能发表评论,伙计:)

我打赌你有一个嵌套列表,类似于[ 1,2,3,4 ]而不是1,2,3,4。

代码语言:javascript
复制
result = [1-x for y in a for x in y]

我知道它看起来很可怕,如果你发布一个实际的列表表示,它将有助于使它更干净。如果列表很重要,可以用虚拟值填充列表。

票数 1
EN

Stack Overflow用户

发布于 2017-01-11 21:56:43

一个简单的for循环就可以做到这一点:

代码语言:javascript
复制
atemp = [2,4,6,8,10]
a=[]
for i in atemp:
    a.append((1 - i))

退出:

代码语言:javascript
复制
[-1, -3, -5, -7, -9]

或者是列表理解

代码语言:javascript
复制
a = [1 - x for x in atemp]

退出:

代码语言:javascript
复制
a

[-1, -3, -5, -7, -9]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41601270

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档