6.6Python之集合的基本语法和特性

        集合(Set)是Python中的一种无序、不重复的数据结构。集合是由一组元素组成的,这些元素必须是不可变数据类型,但在集合中每个元素都是唯一的,即集合中不存在重复的元素。

集合的基本语法:

1、元素值必须是不可变数据类型

集合的元素值不能嵌套列表等。

s1 = {1, 2, 3}
print(s1)
s2 = {1, 2, 3, [4, 5]}
print(s2)

集合的数据类型具有长度。

s1 = {1,2,3}
print(len(s1))
print(type(s1))

2、无序:没有索引

因集合里的元素值是无序的,即使显示是按照顺序打印的。所以集合没有索引的使用方法。

s1 = {1, 2, 3}
print(s1[0])

3、唯一: 集合可以去重

集合里定义的元素值,即使有多个重复的值,会进行去重处理,保证值的唯一。

s2 = {1, 2, 3, 3, 2, 2}
print(s2)

4、列表与集合的组合使用

列表与集合是可以在符合条件下的情况相互做类型转换的。

例如,可以使用集合将列表里的元素值做去重处理,去重处理后得到的集合,同样可转为列表。

list01 = [1, 2, 3, 3, 2, 2]

# 类型转换:将列表转为集合
list01 = set(list01)
print(list01)
print(type(list01))

# 类型转换:将集合转为列表
list01 = list(list01)
print(list01)
print(type(list01))

集合的特性:

  1. 无序性:集合中的元素是无序的,即元素没有固定的顺序。因此,不能使用索引来访问集合中的元素。
  2. 唯一性:集合中的元素是唯一的,不允许存在重复的元素。如果尝试向集合中添加已经存在的元素,集合不会发生变化。
  3. 可变性:集合是可变的,可以通过添加或删除元素来改变集合的内容

以上为Python的集合的基本语法和特性。

  • 18
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
好的,以下是使用Python 3.6实现的红楼梦人物统计代码: ```python with open('红楼梦.txt', 'r', encoding='utf-8') as f: content = f.read() # 去除标点符号和换行符 content = content.replace('\n', '').replace('\r', '').replace(',', '').replace('。', '').replace('!', '').replace('?', '').replace('、', '').replace(';', '').replace(':', '').replace('“', '').replace('”', '').replace('‘', '').replace('’', '').replace('『', '').replace('』', '').replace('(', '').replace(')', '').replace('《', '').replace('》', '').replace('【', '').replace('】', '').replace('[', '').replace(']', '').replace('〔', '').replace('〕', '').replace('—', '').replace('…', '') # 将文本按照空格分隔成单词列表 words_list = content.split(' ') # 统计每个人物出现的次数 characters_count = {} for word in words_list: if word in characters_count: characters_count[word] += 1 else: characters_count[word] = 1 # 取出出现次数前20的人物 top_characters = sorted(characters_count.items(), key=lambda x: x[1], reverse=True)[:20] # 输出结果 print('{:<10}{:<10}'.format('人物', '出现次数')) for character, count in top_characters: print('{:<10}{:<10}'.format(character, count)) ``` 在该代码中,我们首先读取红楼梦的文本内容,并将其去除标点符号和换行符等无用字符,然后将文本按照空格分隔成单词列表。接着,我们统计每个人物出现的次数,并取出出现次数前20的人物。最后,我们将结果输出。 需要注意的是,该代码只是一个简单的示例,可能不能完全准确地统计红楼梦中每个人物的出现次数,因为有些人物可能有多个名字或别名,而且有些人物可能只出现在某些章节中。如果需要更准确的结果,可能需要更复杂的算法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

飛燚非燚

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值