如何在 Python 中获取字符串的前 2 个字母?
Posted
技术标签:
【中文标题】如何在 Python 中获取字符串的前 2 个字母?【英文标题】:How to get the first 2 letters of a string in Python? 【发布时间】:2014-01-26 03:37:46 【问题描述】:假设我有一个字符串
str1 = "TN 81 NZ 0025"
two = first2(str1)
print(two) # -> TN
如何获取该字符串的前两个字母?为此,我需要 first2
函数。
【问题讨论】:
在这种情况下str1.split()[0]
也可以使用,如果您还需要其他字段可能更有意义。
@U2EF1,不,它确实... str[0] 给你第一个字符,你需要 str[:2] 并且拆分也是必要的。
@alvas str1.split()[0]
和 str1[0]
是两段截然不同的代码。
但它做同样的事情并实现了单个元素。然后你需要加入然后"".join(str1.split()[:2])
是多余的,如果没有双倍间距,str[:2]
实现相同。
@alvas 谁说str1.split()[:2]
? U2EFI 说str1.split()[0]
【参考方案1】:
就像string[:2]
一样简单。如果您需要,可以轻松编写一个 function 来执行此操作。
即使这样,也很简单
def first2(s):
return s[:2]
【讨论】:
这个是抢前两个字符的正确方法。你回答的OP恰到好处,所以赞成。但是,我永远不会为此使用函数。我更喜欢在代码中明确说明,而不必追踪函数进行验证。如firsttwo = somestring[:2]
in-line 在主代码中
我同意,事实上我写了“如果你需要,可以很容易地编写一个函数来完成它。”拥有像first2
、first3
、first4
这样的大量函数是没有意义的……【参考方案2】:
一般情况下,您可以使用string[i:j]
获取从i
到j
的字符串的字符。
string[:2]
是string[0:2]
的简写。这也适用于列表。
Learn about Python's slice notation at the official tutorial
【讨论】:
【参考方案3】:下面是简单函数的样子:
def firstTwo(string):
return string[:2]
【讨论】:
【参考方案4】:t = "your string"
播放字符串的前 N 个字符
def firstN(s, n=2):
return s[:n]
默认相当于
t[:2]
【讨论】:
【参考方案5】:在 python 中,字符串是字符列表,但它们不是明确的列表类型,只是类似列表(即可以将其视为列表)。更正式地说,他们被称为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'
未定义时,slice notation 以 0 为起始位置,以 len(sequence) 为结束位置。
在过去的 C 时代,它是一个字符数组,整个问题的动态 vs 静态列表现在听起来像传说,见 Python List vs. Array - when to use?
【讨论】:
【参考方案6】:如果您的字符串不够长,所有前面的示例都会引发异常。
另一种方法是使用
'yourstring'.ljust(100)[:100].strip()
.
这将为您提供前 100 个字符。 如果您的字符串最后一个字符是空格,您可能会得到一个较短的字符串。
【讨论】:
不正确:例如''[:2]
只返回 ''
。也不例外。【参考方案7】:
为了完整性:您可以为 lambda
函数命名,而不是使用 def
:
first2 = lambda s: s[:2]
【讨论】:
Named lambdas are bad practice。请改用def
。以上是关于如何在 Python 中获取字符串的前 2 个字母?的主要内容,如果未能解决你的问题,请参考以下文章