python求字符串中单词出现的索引
时间: 2024-03-06 16:50:35 浏览: 243
可以使用Python内置的字符串方法`split()`和`find()`来实现。
首先,使用`split()`方法将字符串拆分成单词的列表,然后遍历列表,使用`find()`方法查找每个单词在字符串中出现的索引。
下面是一个示例代码:
```python
s = "Hello World, welcome to Python world."
words = s.split() # 拆分字符串为单词列表
for word in words:
index = s.find(word) # 查找单词在字符串中的索引
print(f"{word}: {index}")
```
输出结果为:
```
Hello: 0
World,: 6
welcome: 13
to: 21
Python: 25
world.: 32
```
注意,`find()`方法返回的是单词在字符串中第一次出现的索引,如果单词出现了多次,只会返回第一次出现的索引。如果要查找所有出现的索引,可以使用循环和切片来实现。
相关问题
Python字符串查找单词位置
在Python中,你可以使用内置的`str.index()`或`str.find()`方法来查找单词在字符串中的位置。这两个方法都会返回指定字符或子串第一次出现的位置索引,如果找不到则会抛出异常。
1. `index()`方法:
```python
word_position = my_string.index(word)
```
如果单词在字符串中存在,这将返回单词的第一个字符的索引;如果不存在,则会引发`ValueError`。
2. `find()`方法:
```python
if my_string.find(word) != -1:
word_position = my_string.find(word)
else:
word_position = None
```
这个方法不会抛出异常,而是返回 `-1` 表示未找到,否则返回的是单词的起始索引。
例如,如果你想找出"hello"在"Hello, world! How are you?"中的位置,可以这样做:
```python
my_string = "Hello, world! How are you?"
word = "world"
position = my_string.lower().find(word.lower()) # 确保忽略大小写
if position != -1:
print(f"'{word}' 的位置是 {position}")
else:
print(f"'{word}' 没有在字符串中找到")
```
注意这里先将字符串和单词都转换成小写再查找,以便在比较时不考虑大小写差异。
python字符串单词逆序输出、多空格,反转字符串中的单词字母顺序
好的,这是两个问题,我分别回答。
1. Python字符串单词逆序输出、多空格
你可以使用split()方法将字符串分割成单词,并将单词存储在列表中。然后,你可以使用反向索引(-1、-2等)以相反的顺序遍历该列表,并将每个单词添加到新的字符串中。在添加单词时,你可以添加一个空格以分隔单词。
代码示例:
```python
s = "Hello world! "
words = s.split()
new_s = ""
for i in range(len(words)-1, -1, -1):
new_s += words[i] + " "
print(new_s)
```
输出:
```
world! Hello
```
在这个例子中,我们使用split()方法将字符串分割成单词,并将这些单词存储在名为words的列表中。我们使用一个for循环以相反的顺序遍历该列表,并将每个单词添加到名为new_s的新字符串中。我们还在每个单词后添加了一个空格,以便在单词之间创建空格。
请注意,我们将for循环的第三个参数设置为-1,以便在每次迭代中减少i的值。这使得i从最后一个元素开始,并以相反的顺序遍历该列表。
2. 反转字符串中的单词字母顺序
你可以使用split()方法将字符串分割成单词,并将每个单词转换为列表。然后,你可以使用切片将每个单词反转,然后使用join()方法将这些单词组合成新的字符串。
代码示例:
```python
s = "Hello world!"
words = s.split()
for i in range(len(words)):
words[i] = words[i][::-1]
new_s = " ".join(words)
print(new_s)
```
输出:
```
olleH dlrow!
```
在这个例子中,我们使用split()方法将字符串分割成单词,并将这些单词存储在名为words的列表中。然后,我们使用一个for循环遍历该列表,并使用切片将每个单词反转。我们还使用join()方法将这些单词组合成名为new_s的新字符串。
请注意,在切片中,我们使用了步长为-1,这意味着我们从右向左遍历该单词。
阅读全文