Python dizelerinin sonunda özel bir karakter var mı? C veya C++ 'da olduğu gibi. Yerleşik len
işlevini kullanmadan python dizesinin uzunluğunu saymak istiyorum.Python dizeleri sonlanan bir NULL içinde mi bitiyor?
cevap
Python'da en az bir karakter dizisi karakteri yok, en azından görünmeyen bir tane var ve uygulamaya bağımlı olacak. Dize nesneler kendi uzunluklarını korur ve bununla ilgilenmeniz gereken bir şey değildir. len()
kullanmadan dizenin uzunluğunu almanın çeşitli yolları vardır.
str = 'man bites dog'
unistr = u'abcd\u3030\u3333'
# count characters in a loop
count = 0
for character in str:
count += 1
>>> count
13
# works for unicode strings too
count = 0
for character in unistr:
count += 1
>>> count
6
# use `string.count()`
>>> str.count('') - 1
13
>>> unistr.count(u'') - 1
6
# weird ways work too
>>> max(enumerate(str, 1))[0]
13
>>> max(enumerate(unistr, 1))[0]
6
>>> str.rindex(str[-1]) + 1
13
>>> unistr.rindex(unistr[-1]) + 1
6
# even weirder ways to do it
import re
pattern = re.compile(r'$')
match = pattern.search(str)
>>> match.endpos
13
match = pattern.search(unistr)
>>> match.endpos
6
Bunun buzdağının sadece görünen kısmı olduğunu sanıyorum.
Bir dizenin uzunluğunu almak için regex kullanma? Bugün gördüğüm en komik şey bu. – Shuklaswag
count=0
for i in 'abcd':
count+=1
print 'lenth=',count
başka bir şekilde:
for i,j in enumerate('abcd'):
pass
print 'lenth=',i+1
enumerate
bir bir demet (indeks ve değer) Örneğin
döner işlevi inşa:
l= [7,8,9,10]
print 'index','value'
for i ,j in enumerate(l):
print i,j
çıkışlar: Bir Python dize ucunda böyle bir sonlandırma NULL ya da bir şey (eğer görülebilecektir) yoktur:
index value
0 7
1 8
2 9
3 10
l = "this is my string"
counter = 0
for letter in l:
counter += 1
>>> counter
17
İstediğin soruyu cevaplamak için çünkü bir dizenin "sonunun düşmesi" için bir yolu yoktur. Dahili olarak, en popüler Python uygulaması C dilinde yazılmıştır, bu yüzden muhtemelen kaputun altında bir yerde NULL sonlandırılmış bir dizedir. Ama bu bir Python geliştiricisi olarak tamamen opak.
Uzunluğunu yerleşik bir işlev kullanmadan elde etmek istiyorsanız, çok sayıda farklı şey yapabilirsiniz.
sum([1 for _ in "your string goes here"])
, bence, biraz daha zarif: İşte burada yayınlanan diğerlerinden farklı bir seçenek.
Python, muhtemelen dizeleri null içerebilir çünkü null sonlandırma iç, kullanın: '\ 0' (echos '\ x00') –
Çeşitli ilginç şeyler buldum:
s_1 = '\x00'
print ("s_1 : " + s_1)
print ("length of s_1: " + str(len(s_1)))
s_2 = ''
print ("s_2 : " + s_2)
print ("length of s_2: " + str(len(s_2)))
if s_2 in s_1:
print ("s_2 in s_1")
else:
print ("s_2 not in s_1")
çıktısı:
İştes_1 :
length of s_1: 1
s_2 :
length of s_2: 0
s_2 in s_1
S_1 bir 'gibi görünüyor' ve S_2 bir gibi görünüyor '' ya da NULL.
- 1. Başlar. . . bir 'blok' belirtilirken bitiyor?
- 2. Codeigniter formu aynı sayfada gönderme boş sonuç içinde bitiyor
- 3. aktivite çok yavaş bitiyor
- 4. SWIG python bir işaretçiyi NULL
- 5. AES yönetilen şifreleme değerleri her zaman == içinde bitiyor?
- 6. Can Golang, Python can gibi dizeleri çoğaltabilir mi?
- 7. python: ifadesi ifade içinde olabilir mi?
- 8. Dizeleri Matlab'dan excel'e mi okuyorsunuz?
- 9. Bir plsql döngüsü içinde Oracle'da dizeleri ekleme
- 10. Herhangi bir() ile başka bir String içinde Çoklu Dizeleri Arama
- 11. Git İçinde Dizeleri Güvenli Karşılaştır
- 12. python 3.5.1, dizeleri işlevlerden döndürmez
- 13. Python intern dizeleri var mı?
- 14. Bir python komut dosyasının içinde easy_install öğesini mi kullanıyorsunuz?
- 15. ListAdapter Dizeleri kullanmaktan başka süzgeçten mi?
- 16. Yeni operatör NULL döndürecek mi?
- 17. this.state null reaktres bileşeni içinde
- 18. WM_COPYDATA SendMessage - Büyük dizeleri gönderebilir mi?
- 19. NSLocalizedString() tarafından döndürülen dizeleri kaydetmem gerekir mi?
- 20. dizeleri
- 21. Python'daki dosyadan özel ayırıcı tarafından sonlanan kayıtlar nasıl okunur?
- 22. Dizeleri JSTL içinde Başlık durumuna dönüştürme
- 23. ValueTypes, Dizeleri ve Null Değerli Değerler için Genel kısıtlama
- 24. Sqlite: null/empty dizeleri içeren satırların nasıl silineceği
- 25. LINQ to SQL ve Null dizeleri, nasıl kullanılır?
- 26. Python SeleniumExtract href içeren belirli dizeleri
- 27. sarma dizeleri
- 28. Blender Python nesneyi aynı grup içinde mi seçiyorsunuz?
- 29. nasıl dizeleri bir kabuk okunabilir dizi Python listeleri dönüştürmek için?
- 30. GROUP_CONCAT NULL varsa, herhangi bir değer NULL
Ev işi gibi görünüyor. Ne denedin? –
Java'da NULL değil ... –
@AamirAdnan Dize sonunu kontrol etmek için Java veya C++ ile aynı şeyi kullanmaya çalışıyordum. – ayushgp