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


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.