比方說,我有一個字符串如何獲取Python中字符串的前2個字母?
Str1 = "TN 81 NZ 0025"
str2 = "DL 11C AA 1111"
two = first2(str1)
print(two)
>>>TN
如何獲得這些字符串的前兩個字母。我需要first2功能。
比方說,我有一個字符串如何獲取Python中字符串的前2個字母?
Str1 = "TN 81 NZ 0025"
str2 = "DL 11C AA 1111"
two = first2(str1)
print(two)
>>>TN
如何獲得這些字符串的前兩個字母。我需要first2功能。
它就像string[:2]
一樣簡單。 A 功能可以很容易地寫出來做到這一點,如果你需要。
即使這樣,很簡單,只要
def first2(s):
return s[:2]
我已經回滾了您的(無法解析的)編輯,因爲它只是錯誤的,使用了錯誤的片語法。 – ShinTakezou
這是獲取前兩個字符的正確方法。你剛剛回答了OP,太好了。不過,我絕不會爲此使用函數。我更願意在代碼中明確表示,而不必追查驗證功能。在主代碼 – SDsolar
中的'firsttwo = somestring [:2]'中,我同意,事實上我寫道:「如果需要,可以很容易地寫出函數來實現它。」沒有任何意義噸的函數,如'first2','first3','first4' ... – ShinTakezou
繼承人的簡單的功能是什麼樣子:
def firstTwo(string):
return string[:2]
出於完整性:不要使用def
的你可以給一個名稱爲lambda
功能:
first2 = lambda s: s[:2]
一般來說,你可以將一個字符串g從i
直到j
與string[i:j]
。 string[:2]
是string[0:2]
的簡寫。這也適用於數組。
Learn about python's slice notation at the official tutorial
在蟒字符串是字符的列表中,但沒有明確列出的類型,只是列表類似的(即,它可以像一個列表處理的)。更正式地說,他們被稱爲sequence
(見http://docs.python.org/2/library/stdtypes.html#sequence-types-str-unicode-list-tuple-bytearray-buffer-xrange):
>>> a = 'foo bar'
>>> isinstance(a, list)
False
>>> isinstance(a, str)
True
由於字符串序列,你可以用slicing
訪問列表的部分,由list[start_index:end_index]
看到Explain Python's slice notation表示。例如:
>>> a = [1,2,3,4]
>>> a[0]
1 # first element, NOT a sequence.
>>> a[0:1]
[1] # a slice from first to second, a list, i.e. a sequence.
>>> a[0:2]
[1, 2]
>>> a[:2]
[1, 2]
>>> x = "foo bar"
>>> x[0:2]
'fo'
>>> x[:2]
'fo'
未定義時,切片符號將起始位置作爲0,結束位置作爲len(序列)。
在古代Ç天,這是一個字符數組,動態VS靜態列表聽起來像傳說現在整個問題,請參閱Python List vs. Array - when to use?
所有以前的例子會拋出一個異常的情況下,您的字符串不夠長。其他方法是使用 'yourstring'.ljust(100)[:100].strip()
。
這會給你前100個字符。 如果你的字符串最後一個字符是空格,你可能會得到一個較短的字符串。
在這種情況下'str1.split()[0]'也可以,如果你還需要其他的字段,它可能會更有意義。 – U2EF1
@ U2EF1,不,它確實... str [0]爲您提供第一個字符,您需要str [:2]並且分割也是必需的。 – alvas
@alvas'str1.split()[0]'和'str1 [0]'是兩段非常不同的代碼。 – U2EF1