python基础知识(七)—— 集合 set\list

集合 set

创建集合
set('zhou wu')
print('z','h','o','u',' ','w','u')
集合分类
  • 可变集合(set):可添加、删除,非可哈希,不能用作字典的键值,也不可做其他集合的元素。
  • 不可变集合(frozenset):与可变集合相反。
li=[1,2,3]
s=set(li)
dic={s:'123'}#TypeError:unhashable type: 'set'
访问集合

由于集合本身是无序的,所以不能为集合创建索引或切片操作,只能使用循环遍历或使用in not in 来访问判断集合元素

print(3 in s)#返回结果:true
更新集合
#可以使用以下内建方法来实现更新
s.add()#只添加一个元素
s.update()#添加一个序列
s.update('asd')#其结果为:原有的元素加上‘a’,‘s’,‘d’(无序的)
s.remove()#删除元素
set与frozenset的区别

同多数语言一样,set表示集合,最重要的特性就是无序,所以Python中的set不支持indexing,但支持len(set),x in set 等操作。

set有两种类型,set和frozenset。

set是可变的,有add(),remove()等方法。既然是可变的,所以它不存在哈希值。

frozenset是冻结的集合,它是不可变的,存在哈希值,好处是它可以作为字典的key,也可以作为其它集合的元素。缺点是一旦创建便不能更改,没有add,remove方法。

举例如下

fza=frozenset('a')
adict={fza:1,'b':2} #正确
setb=set('a')
bdict={setb:1,'b':2} #错误

还有一点需要注意,不管是set还是frozenset,Python都不支持创建一个整数的集合。

seta=set(1) #错误
setb=set'1')#正确

集合List

list中append()与extend()用法

列表是以类的形式实现的。“创建”列表实际上是将一个类实例化。因此,列表有多种方法可以操作。

  1. 列表可包含任何数据类型的元素,单个列表中的元素无须全为同一类型。
  2. append() 方法向列表的尾部添加一个新的元素。只接受一个参数。
  3. extend()方法只接受一个列表作为参数,并将该参数的每个元素都添加到原有的列表中。

append()用法示例:

>>> mylist = [1,2,0,'abc']
>>> mylist
[1, 2, 0, 'abc']
>>> mylist.append(4)
>>> mylist
[1, 2, 0, 'abc', 4]
>>> mylist.append('haha')
>>> mylist
[1, 2, 0, 'abc', 4, 'haha']
>>>

extend()用法示例:

>>> mylist
[1, 2, 0, 'abc', 4, 'haha']
>>> mylist.extend(['lulu'])
>>> mylist
[1, 2, 0, 'abc', 4, 'haha', 'lulu']
>>> mylist.extend([aaa,'lalalala'])
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'aaa' is not defined
>>> mylist.extend(['123123','lalalala'])
>>> mylist
[1, 2, 0, 'abc', 4, 'haha', 'lulu', '123123', 'lalalala']
>>> mylist.extend([111111,222])
>>> mylist
[1, 2, 0, 'abc', 4, 'haha', 'lulu', '123123', 'lalalala', 111111, 222]
>>>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值