4 回答

TA貢獻1998條經驗 獲得超6個贊
我建議使用像 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貢獻1880條經驗 獲得超4個贊
我很確定你要找的東西不存在,因為 Python 不像 Mathematica 那樣“面向數學”。但是,如果您需要一個沒有庫、數據結構或其他東西并且只有一行的解決方案,我建議如下:
(a,b,c,d) = tuple(map((2).__mul__, (a,b,c,d)))
無論如何,我建議使用 NumPy,因為它經過了相當大的優化,并且解決方案更容易閱讀。

TA貢獻1816條經驗 獲得超4個贊
一個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

TA貢獻1864條經驗 獲得超2個贊
好吧,天真的 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
添加回答
舉報