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]
>>>
发布了19 篇原创文章 · 获赞 1 · 访问量 1251

猜你喜欢

转载自blog.csdn.net/weixin_43093289/article/details/83447807
今日推荐