是否可以使用子字符串而不必将它们存储在单独的变量中

2024-06-06 15:47:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我希望能够检查字符串中的第一个子字符串:random_string = "fox is bright orange"是什么,而不需要拆分字符串,然后从列表中读取,或者将其存储在其他变量中。有可能这样做吗?你知道吗

我在这里使用的字符串只是一个示例,因此没有使用指定的字符串。我希望能够计算出任何字符串的子字符串(如果它被' '分割),而不必使用列表


Tags: 字符串示例列表stringisrandombrightorange
3条回答

在Python中做您想做的事情的正确方法正是您试图避免的。没有真正的理由这么做。你知道吗

但是。。。如果你绝对不想使用列表,你可以这样做。你知道吗

sub_string = random_string[:random_string.index(' ')]

请注意,如果字符串中没有空格,这将引发异常。你知道吗

所以你想从fox is bright orange得到fox

  1. Regex;^\w+从开始处获取一个或多个字母数字:

    In [61]: re.search(r'^\w+', random_string).group()
    Out[61]: 'fox'
    
  2. str.partition(它产生一个元组)并获取第一个元素

    In [62]: random_string.partition(' ')[0]
    Out[62]: 'fox'
    

是否要检查给定字符串是否以某个单词开头?你知道吗

random_string = "fox is bright orange"
print(random_string.startswith("fox ")   # True

你想知道第一个单词的长度吗?你知道吗

random_string = "fox is bright orange"
print(random_string.index(" "))           # 3

你想得到第一个单词,但不想分割其他单词吗?你知道吗

random_string = "fox is bright orange"
print(random_string[:random_string.index(" ")])    # fox

请注意,str.index()在找不到指定的子字符串时,即当字符串中只有一个单词时,会引发ValueError,因此如果使用最后两种解决方案之一,则应该捕获该错误并执行适当的操作(例如使用整个字符串)。你知道吗

random_string = "fox is bright orange"
try:
    print(random_string[:random_string.index(" ")])
except ValueError:
    print(random_string)

或者可以使用str.find()。如果找不到子字符串,则返回-1,您必须稍微改变处理方式。你知道吗

相关问题 更多 >