Cho phép nói rằng tôi có một chuỗi bao gồm x ký tự không xác định. Làm thế nào tôi có thể nhận được char nr. 13 hoặc char nr. x-14?Cách lấy char từ chuỗi theo chỉ mục?
Trả lời
Trước tiên hãy đảm bảo số được yêu cầu là chỉ số hợp lệ cho chuỗi từ đầu hoặc cuối, sau đó bạn có thể chỉ cần sử dụng ký hiệu chỉ số mảng. sử dụng len(s)
để có được chuỗi dài
>>> 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
>>>
In [1]: x = "anmxcjkwnekmjkldm!^%@(*)#[email protected]"
In [2]: len(x)
Out[2]: 45
Bây giờ, Đối với dao động chỉ số dương tính với x là 0-44 (tức là chiều dài - 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'
Đối với chỉ số Negative, chỉ số dao động từ -1 đến -45
In [6]: x[-1]
Out[6]: 's'
In [7]: x[-45]
Out[7]: 'a
Đối với chỉ số âm, âm [length -1] tức là giá trị hợp lệ cuối cùng ue chỉ số tích cực sẽ cho yếu tố danh sách thứ hai là danh sách được đọc theo thứ tự ngược,
In [8]: x[-44]
Out[8]: 'n'
khác, ví dụ chỉ số của,
In [9]: x[1]
Out[9]: 'n'
In [10]: x[-9]
Out[10]: '7'
này nên làm rõ thêm các điểm:
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')
Nhập 3 Đầu ra m
Nhập -3 Output p
Một exersice khuyến khích cho sự hiểu biết danh sách và lập chỉ mục:
L = ['a', 'b', 'c']
for index, item in enumerate(L):
print index + '\n' + item
0
a
1
b
2
c
Python.org có một phần xuất sắc trên dây here. Cuộn xuống đến nơi nó nói "ký hiệu slice".
Câu trả lời trước bao gồm khoảng ASCII character
tại một chỉ mục nhất định.
Nó được một chút phiền hà để có được một Unicode character
tại một chỉ số nhất định trong Python 2.
Ví dụ, với s = '한국中国にっぽん'
đó là <type 'str'>
,
__getitem__
, ví dụ, s[i]
, không dẫn bạn đến nơi bạn mong muốn. Nó sẽ nhổ ra semething như �
. (Nhiều ký tự Unicode hơn 1 byte nhưng __getitem__
bằng Python 2 được tăng lên bởi 1 byte.)
Trong trường hợp Python 2 này, bạn có thể giải quyết vấn đề bằng cách giải mã:
s = '한국中国にっぽん'
s = s.decode('utf-8')
for i in range(len(s)):
print s[i]
- 1. Lấy char từ chuỗi tại chỉ mục được chỉ định trong hình ảnh cơ bản
- 2. python - tìm char trong chuỗi - tôi có thể lấy tất cả các chỉ mục không?
- 3. Lấy Char từ Key
- 4. Lấy một mục danh sách theo chỉ mục
- 5. Tìm chỉ mục của một char trong chuỗi?
- 6. Scala for-loop. Lấy chỉ mục theo cách consice
- 7. Chuỗi con NSIS theo chỉ mục
- 8. Cách lấy chỉ mục đúng cách từ đường dẫn chỉ mục trong UICollectionView?
- 9. Tìm nhiều chỉ mục từ chuỗi nguồn
- 10. Cách lấy mục "tiếp theo" trong OrderedDict?
- 11. lấy đầu vào của một từ chuỗi theo từ
- 12. Cách chỉ lấy tên thư mục từ SaveFileDialog.FileName
- 13. PHPExcel cách lấy chỉ mục cột từ ô
- 14. Cách lấy hàng và cột từ chỉ mục?
- 15. Remove '\' char từ chuỗi C#
- 16. Từ điển Iterate Python theo Chỉ mục
- 17. Tạo chuỗi không an toàn từ char []
- 18. Java HashMap: Cách lấy khóa và giá trị theo chỉ mục?
- 19. Nhận chỉ mục của enum từ chuỗi?
- 20. String.Replace (char, char) hoặc Replace (chuỗi, chuỗi)?
- 21. tạo std :: chuỗi từ char * một cách an toàn
- 22. Lấy chuỗi chứng chỉ
- 23. Lấy VK int từ một char tùy ý trong java
- 24. Cách lấy địa chỉ IP từ địa chỉ Mac theo lập trình trên Android?
- 25. Trả về char []/chuỗi từ hàm
- 26. Xóa char tại chỉ mục cụ thể - python
- 27. Lấy các elemnt từ một ArrayList bằng cách chỉ định các chỉ mục
- 28. Solr: Lấy tên trường từ chỉ mục solr?
- 29. Thay thế một char tại một chỉ mục đã cho trong chuỗi?
- 30. char * con trỏ từ chuỗi trong C#
Bạn có thể vượt qua số nguyên âm –
@AviramSegal Cảm ơn bạn đã sửa chữa, Có, chúng tôi có thể, nhưng họ cũng nên ở trong giới hạn của độ dài chuỗi. – DhruvPathak
sau khi bạn chỉnh sửa câu trả lời hay nhất, được bỏ phiếu thay vì xuống :) –