यह एक प्रारंभिक प्रश्न हो सकता है।

मान लीजिए मेरे पास कई चर हैं, x1, x2, x3।

एक निश्चित अनुक्रमणिका c के मान के आधार पर, मैं इनमें से किसी एक चर के लिए मान निर्दिष्ट करना चाहता हूं।

आदर्श रूप से, मैं [x1, x2, x3] [c] = मान जैसा कुछ करना चाहूंगा ताकि जब c = 0, x1 को एक मान दिया जाए, और जब c = 1, x2 को एक मान दिया जाए और इसी तरह।

लेकिन ऐसा नहीं लगता कि अजगर मुझे ऐसा करने दे रहा है।

बेशक, मैं कुछ ऐसा कर सकता हूं

if c = 0:
    x1 = value
elif c = 1:
    x2 = value

लेकिन यह बहुत लंबा होगा।

मुझे क्या करना चाहिए?

0
OSub Kwon 2 अगस्त 2019, 02:14

2 जवाब

सबसे बढ़िया उत्तर

आप अपने चर को एक सूची में असाइन कर सकते हैं और फिर मानचित्र का उपयोग करके मान वापस असाइन कर सकते हैं, मुझे संदेह है कि यह आपके आवेदन के बारे में जाने का सबसे अच्छा तरीका नहीं है लेकिन अधिक जानकारी के बिना मैं वास्तव में आगे टिप्पणी नहीं कर सकता।

ये कोशिश करें:

x1, x2, x3 = 2, 5, 10

var_list = [x1,x2,x3]

c = 1
var_list[c] = 42

x1, x2, x3 = map(lambda x:x,var_list)

print(x1, x2, x3) 
2
T. Welsh 2 अगस्त 2019, 02:35

आप अपने चर को एक शब्दकोश में रख सकते हैं, ऐसा कुछ:

vars = ['x0', 'x1', 'x2']

vars_value = {var: value for var, value in zip(vars, [None] * len(vars)}  # initialisation

vars_value[vars[c]] = <value>
0
kederrac 2 अगस्त 2019, 02:35