假设我有一个字符串
str1 = "TN 81 NZ 0025"
two = first2(str1)
print(two) # -> TN
如何获取此字符串的前两个字母?我需要使用first2
函数。
这就像是简单的string[:2]
一样。如果需要,可以轻松编写一个函数来完成它。
即使这样,也和简单无异。
def first2(s):
return s[:2]
somestring [:2]
来获取前两个字符。 - SDsolarfirst2
、first3
、first4
这样的大量函数是没有意义的。 - ShinTakezout = "your string"
使用以下方法操作一个字符串的前N个字符:
def firstN(s, n=2):
return s[:n]
默认情况下等同于
t[:2]
def firstTwo(string):
return string[:2]
在Python中,字符串是字符列表,但它们不是显式的列表类型,而只是类似于列表的(即,可以像列表一样处理)。更正式地说,它们被称为序列
(请参见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
由于字符串是序列,您可以使用 切片
来访问列表的部分,标记为 list [start_index:end_index]
,请参见 解释Python的切片表示法。例如:
>>> 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,结束位置设置为序列长度。
在早期的C语言中,它是一个字符数组,动态与静态列表的问题现在看起来像传说一样,参见Python List vs. Array - when to use?
'yourstring'.ljust(100)[:100].strip()
。''[:2]
只会返回 ''
,不会有异常抛出。 - djvgfirst2 = lambda s: s[:2]
def
代替。 - wjandrea
str1.split()[0]
也可以使用,并且如果您还需要其他字段,则可能更有意义。 - U2EF1str1.split()[0]
和str1[0]
是两段非常不同的代码。 - U2EF1"".join(str1.split()[:2])
是多余的,而str[:2]
则可以实现相同的效果。 - alvasstr1.split()[:2]
?U2EFI 说的是str1.split()[0]
。 - wjandrea