4 回答

TA貢獻(xiàn)1777條經(jīng)驗(yàn) 獲得超10個(gè)贊
我建議使用像 numpy 這樣的優(yōu)化庫(kù)并使用矩陣/數(shù)組。
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貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超4個(gè)贊
我很確定你要找的東西不存在,因?yàn)?Python 不像 Mathematica 那樣“面向數(shù)學(xué)”。但是,如果您需要一個(gè)沒(méi)有庫(kù)、數(shù)據(jù)結(jié)構(gòu)或其他東西并且只有一行的解決方案,我建議如下:
(a,b,c,d) = tuple(map((2).__mul__, (a,b,c,d)))
無(wú)論如何,我建議使用 NumPy,因?yàn)樗?jīng)過(guò)了相當(dāng)大的優(yōu)化,并且解決方案更容易閱讀。

TA貢獻(xiàn)1847條經(jīng)驗(yàn) 獲得超11個(gè)贊
好吧,天真的 Pythonic 方式是這樣的:
a, b, c, d = (2 * x for x in (1, 2, 3, 4))
print(a, b, c, d) # Prints 2,4,6,8
你可以將其封裝在一個(gè)小類(lèi)中,然后使用就非常簡(jiǎn)潔了:
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貢獻(xiàn)1831條經(jīng)驗(yàn) 獲得超10個(gè)贊
一個(gè)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
添加回答
舉報(bào)