如何在 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 在主代码中 我同意,事实上我写了“如果你需要,可以很容易地编写一个函数来完成它。”拥有像first2first3first4 这样的大量函数是没有意义的……【参考方案2】:

一般情况下,您可以使用string[i:j] 获取从ij 的字符串的字符。

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 个字母?的主要内容,如果未能解决你的问题,请参考以下文章

用于查找字母字符的前 x 个出现的正则表达式,忽略其他所有内容

python怎么提取字符串里的字母?

提取数字前的前几个字母并跳过其余字母

如何获取字符串的前五个字符

如何在Python中访问键值的前n个字符

如何在android datepicker中显示月份的前三个字母