4 回答
TA贡献1777条经验 获得超10个赞
我建议使用像 numpy 这样的优化库并使用矩阵/数组。
import numpy as np
a,b,c,d=1,2,3,4
print(a,b,c,d)
# Create array
array = np.array([a,b,c,d])
# Calculate
array = 2*array
# Assign variables again
a,b,c,d = array
print(a,b,c,d)
# Or as a two liner
a,b,c,d=np.array([1,2,3,4])
a,b,c,d=2*np.array([1,2,3,4])
TA贡献1828条经验 获得超4个赞
我很确定你要找的东西不存在,因为 Python 不像 Mathematica 那样“面向数学”。但是,如果您需要一个没有库、数据结构或其他东西并且只有一行的解决方案,我建议如下:
(a,b,c,d) = tuple(map((2).__mul__, (a,b,c,d)))
无论如何,我建议使用 NumPy,因为它经过了相当大的优化,并且解决方案更容易阅读。
TA贡献1847条经验 获得超11个赞
好吧,天真的 Pythonic 方式是这样的:
a, b, c, d = (2 * x for x in (1, 2, 3, 4))
print(a, b, c, d) # Prints 2,4,6,8
你可以将其封装在一个小类中,然后使用就非常简洁了:
class F(object):
def __init__(self, *args):
self._args = args
def __mul__(self, other):
return (x * other for x in self._args)
def __rmul__(self, other):
return (other * x for x in self._args)
a, b, c, d = F(1, 2, 3, 4) * 2
print(a, b, c, d) # Prints 2,4,6,8
TA贡献1831条经验 获得超10个赞
一个pandas系列可能就是你想要的。
import pandas as pd
>>> data = pd.Series([1,2,3,4], index=['a', 'b', 'c', 'd'])
>>> data
a 1
b 2
c 3
d 4
dtype: int64
>>> data *= 2
>>> data
a 2
b 4
c 6
d 8
>>> data['a']
2
添加回答
举报