亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 python 中一次重新縮放多個變量

在 python 中一次重新縮放多個變量

飲歌長嘯 2023-12-29 15:07:56
在 python 中處理多個變量賦值時,當我嘗試一次重新調整所有變量時,我發現它根本不是Pythonic 。請分享您的想法。例如,我想要的是:a,b,c,d=1,2,3,4(原作業)a,b,c,d=2,4,6,8(目標。即,重新調整 2 倍)假設現在您有 3000 個變量。是否有可能像Python一直在做的那樣,一行代碼達到同樣的目標?謝謝!更新:使用字典或使用 NumPy 數組可能是評論或其他帖子建議的解決方案。但這不是我想要的。我是一個重度Mathematica用戶,你可以像這樣簡單地做到這一點{a,b,c,d}={1,2,3,4}(通過 Mathematica 列表進行的原始作業){a,b,c,d}={1,2,3,4}*2(現在目標已經達到。)基本上,我正在Python中尋找類似的解決方案。
查看完整描述

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])


查看完整回答
反對 回復 2023-12-29
?
明月笑刀無情

TA貢獻1828條經驗 獲得超4個贊

我很確定你要找的東西不存在,因為 Python 不像 Mathematica 那樣“面向數學”。但是,如果您需要一個沒有庫、數據結構或其他東西并且只有一行的解決方案,我建議如下:

(a,b,c,d) = tuple(map((2).__mul__, (a,b,c,d)))

無論如何,我建議使用 NumPy,因為它經過了相當大的優化,并且解決方案更容易閱讀。


查看完整回答
反對 回復 2023-12-29
?
回首憶惘然

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


查看完整回答
反對 回復 2023-12-29
?
慕哥6287543

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


查看完整回答
反對 回復 2023-12-29
  • 4 回答
  • 0 關注
  • 221 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號