मेरे पास यह शब्दकोश है कि मैं अपने कोड को छोटा करने के लिए एक एफ-स्ट्रिंग के अंदर एम्बेड करना चाहता हूं (गोल्फिंग उद्देश्यों के लिए)। क्या एफ-स्ट्रिंग ब्रेसिज़ के अंदर ब्रेसिज़ को शामिल करने का कोई तरीका है?

# what I have:
i=2
a={1:'a',2:'b',3:'c'}.get(i,'g')
b=f'{a} is the letter'

# what I want to do but get a syntax error:
b=f'{{1:'a',2:'b',3:'c'}.get(i,'g')} is the letter'

# desired output:
'b is the letter'

मैं dict().get के लिए {}.get अंकन की अदला-बदली नहीं कर सकता क्योंकि मेरी कुंजियां संख्याएं हैं (जब तक कि इसे समायोजित करने के लिए कोई हैक न हो, लेकिन यह संभवत: मेरे पास पहले से अधिक वर्ण होने के कारण समाप्त हो जाएगा)।

अग्रिम में धन्यवाद।

0
teepee 21 नवम्बर 2020, 02:40

1 उत्तर

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

एक, आपको अपनी स्ट्रिंग पर विभिन्न उद्धरण प्रकारों का उपयोग करना होगा, अन्यथा तानाशाही शाब्दिक के अंदर के उद्धरण चीजों को गड़बड़ कर देंगे। दूसरे, आपको केवल शाब्दिक शब्दकोष और .get() के आस-पास एक स्थान जोड़ना होगा:

b=f"{ {1:'a',2:'b',3:'c'}.get(i,'g') } is the letter"

रिक्त स्थान जोड़ने का स्रोत: यह उत्तर

2
Random Davis 23 नवम्बर 2020, 19:19