इंडेक्स द्वारा स्ट्रिंग से चार कैसे प्राप्त करें?


91

आइए कहते हैं कि मेरे पास एक स्ट्रिंग है जिसमें x अज्ञात वर्ण हैं। मैं चार एनआर कैसे प्राप्त कर सकता हूं। 13 या चार एन.आर. एक्स-14?

जवाबों:


128

पहले सुनिश्चित करें कि आवश्यक संख्या शुरुआत या अंत से स्ट्रिंग के लिए एक वैध सूचकांक है , तो आप बस सरणी सबस्क्रिप्ट नोटेशन का उपयोग कर सकते हैं। len(s)स्ट्रिंग की लंबाई पाने के लिए उपयोग करें

>>> s = "python"
>>> s[3]
'h'
>>> s[6]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: string index out of range
>>> s[0]
'p'
>>> s[-1]
'n'
>>> s[-6]
'p'
>>> s[-7]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: string index out of range
>>> 

1
आप नकारात्मक पूर्णांक
— अविराम सहगल

@AviramSegal सुधार के लिए धन्यवाद, हाँ हम कर सकते हैं, लेकिन वे भी स्ट्रिंग की लंबाई की सीमा में होना चाहिए।
— ध्रुवपतक

1
अपने सबसे अच्छे उत्तर को संपादित करने के बाद, नीचे की बजाय मतदान करें :)
— अविराम सहगल

1
प्रत्येक अनुक्रमणिका में अद्वितीय वर्णों के साथ एक अलग शब्द का उपयोग करके इस उत्तर को बेहतर बनाया जा सकता है। जैसा कि यह खड़ा है [3] अस्पष्ट है जो 'एल' के रूप में यह लौट रहा है।
— नए उपयोगकर्ताओं को

1
क्यों s[-5]काम कर सकता है, लेकिन s[-6]एक इंडेक्स को सीमा त्रुटि से शिकायत करेगा? तो पायथन में स्ट्रिंग ऑब्जेक्ट में कार्यान्वयन के बारे में उत्सुक।
— एल्स्टन

5
In [1]: x = "anmxcjkwnekmjkldm!^%@(*)#_+@78935014712jksdfs"
In [2]: len(x)
Out[2]: 45

अब, x के लिए पॉजिटिव इंडेक्स रेंज 0 से 44 तक है (यानी लंबाई - 1)

In [3]: x[0]
Out[3]: 'a'
In [4]: x[45]
---------------------------------------------------------------------------
IndexError                                Traceback (most recent call last)

/home/<ipython console> in <module>()

IndexError: string index out of range

In [5]: x[44]
Out[5]: 's'

नकारात्मक सूचकांक के लिए, सूचकांक -1 से -45 तक होता है

In [6]: x[-1]
Out[6]: 's'
In [7]: x[-45]
Out[7]: 'a

नकारात्मक सूचकांक के लिए, ऋणात्मक [लंबाई -1] अर्थात सकारात्मक सूचकांक का अंतिम वैध मूल्य दूसरी सूची तत्व देगा क्योंकि सूची को उल्टे क्रम में पढ़ा जाता है,

In [8]: x[-44]
Out[8]: 'n'

अन्य, सूचकांक के उदाहरण

In [9]: x[1]
Out[9]: 'n'
In [10]: x[-9]
Out[10]: '7'

आपको इस बात का कुछ मौखिक वर्णन करना चाहिए कि क्या चल रहा है, भले ही यह प्रश्न आपको बुनियादी लग रहा हो।
— Hannele

कुछ विवरण के साथ उत्तर को अपडेट करें, आशा है कि यह मदद करता है :)
— avasal

3

पिछले उत्तर ASCII characterएक निश्चित इंडेक्स के बारे में बताते हैं ।

Unicode characterपायथन 2 में एक निश्चित इंडेक्स पर मिलना थोड़ा मुश्किल है ।

उदाहरण के लिए, के साथ s = '한국中国にっぽん'जो है <type 'str'>,

__getitem__, जैसे, s[i]आप जहां चाहें, वहां ले जाते हैं। यह जैसे बाहर थूकना होगा �। (कई यूनिकोड वर्ण 1 बाइट से अधिक हैं, लेकिन __getitem__पायथन 2 में 1 बाइट से वृद्धि हुई है।)

इस पायथन 2 मामले में, आप डिकोडिंग करके समस्या को हल कर सकते हैं:

s = '한국中国にっぽん'
s = s.decode('utf-8')
for i in range(len(s)):
    print s[i]


1

सूचियों और सूचियों को समझने के लिए एक और अनुशंसित एक्सर्साइस:

L = ['a', 'b', 'c']
for index, item in enumerate(L):
    print index + '\n' + item

0
a
1
b
2
c 

0

यह आगे बिंदुओं को स्पष्ट करना चाहिए:

a = int(raw_input('Enter the index'))
str1 = 'Example'
leng = len(str1)
if (a < (len-1)) and (a > (-len)):
    print str1[a]
else:
    print('Index overflow')

इनपुट 3 आउटपुट मी

इनपुट -3 आउटपुट पी


0

मुझे लगता है कि इसे शब्दों में वर्णित करने से ज्यादा स्पष्ट है

s = 'python'
print(len(s))
6
print(s[5])
'n'
print(s[len(s) - 1])
'n'
print(s[-1])
'n'
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.