已知字符串words中存放了若干以空格分隔的单词,如words=’hello python hello world hello china good china’,统计每个单词出现的次数。
时间: 2023-12-03 20:43:37 浏览: 178
可以使用Python中的字典来实现单词计数,具体实现如下:
```python
words = 'hello python hello world hello china good china'
word_list = words.split() # 将字符串按空格分割成单词列表
word_count = {} # 用字典存储单词计数结果
for word in word_list:
if word in word_count:
word_count[word] += 1
else:
word_count[word] = 1
print(word_count)
```
运行结果如下:
```
{'hello': 3, 'python': 1, 'world': 1, 'china': 2, 'good': 1}
```
其中,字典`word_count`的键为单词,值为该单词出现的次数。在循环中,如果单词已经在字典中存在,则将该单词对应的值加1;否则,将该单词加入字典并将其值设为1。最终输出字典即可。
相关问题
Python编程:读取已知文件,从大到小输出单词及其出现的次数,次数一样的单词按字符串比较从小到大排序 【输入样例】in.txt文件里面的数据如下所示: hello world python hello word file number file file 【输出样例】out.txt文件里面的数据如下所示: file 3 hello 2 number 1 python 1 word 1 world 1
以下是 Python 代码实现:
```python
import re
# 打开文件并读取内容
with open('in.txt', 'r') as f:
text = f.read()
# 将文本中的标点符号和换行符替换为空格
text = re.sub(r'[^\w\s]', ' ', text)
# 将文本按空格分割成单词列表
words = text.split()
# 统计每个单词的出现次数
word_count = {}
for word in words:
if word not in word_count:
word_count[word] = 1
else:
word_count[word] += 1
# 按照要求排序并输出结果
sorted_words = sorted(word_count.items(), key=lambda x: (-x[1], x[0]))
with open('out.txt', 'w') as f:
for word, count in sorted_words:
f.write(f'{word} {count}\n')
```
我们首先使用与前一个问题相同的方法读取和处理文本文件。然后,我们使用 `sorted()` 函数对单词计数字典进行排序,按照出现次数从大到小排序,如果出现次数相同,则按照字符串比较从小到大排序。最后,我们将排序后的单词及其出现次数写入到 `out.txt` 文件中。
字符串s由若干个单词构成,单词之间由空格分隔。获得s中的最长单词,输出此单词和其长度。
在Python中,可以使用内置的字符串和列表操作来解决这个问题。以下是一个简单的函数,它会从给定的字符串`s`中找到最长的单词及其长度:
```python
def longest_word(s):
# 首先,我们需要去除字符串中的标点符号并将所有内容转换成小写
s = ''.join(e for e in s if e.isalnum()).lower()
# 将字符串分割成单词列表
words = s.split()
# 初始化最长单词和长度
longest = ""
max_length = 0
# 遍历每个单词,更新最长单词和长度
for word in words:
if len(word) > max_length:
longest = word
max_length = len(word)
# 返回最长单词和它的长度
return longest, max_length
# 测试函数
s = "Hello, world! This is a test string."
longest, length = longest_word(s)
print(f"The longest word is '{longest}' with a length of {length}.")
```
这个函数首先移除所有的非字母数字字符,并将字符串转换为小写。然后,它按空格拆分字符串,得到一个单词列表。接着,遍历每个单词,如果当前单词的长度大于已知的最长单词长度,则更新最长单词和长度。最后,返回最长单词和它的长度。
阅读全文