【Python】列表、元组、字典、集合

一、列表

1.定义
  列表 是一种用于保存一系列有序项目的集合,
  使用方括号,元素用逗号隔开
  列表 是一种可变的数据类型
  可存储Python中的一切对象
2.创建列表

#创建列表
>>> list1 = ['apple', 'mango', 'carrot', 'banana']
>>> list1
['apple', 'mango', 'carrot', 'banana']

>>> list2 = []
>>> list2
[]

>>> list3 = [list1,list2]
>>> list3
['apple', 'mango', 'carrot', 'banana'], []]

3.向列表添加元素
  要向列表中添加元素,可以使用列表的一些内置方法:append()、extend()、insert()

# append()在列表末尾添加一个元素
>>> list1=[]
>>> list2=[1,2,3,4]
>>> list3=['a','b','c','d']
>>> list1.append(1)
>>> list1
[1]
>>> list2.append('a')
>>> list2
[1, 2, 3, 4, 'a']
>>> list3.append(list2)
>>> list3
['a', 'b', 'c', 'd', [1, 2, 3, 4, 'a']]

# extend() 函数用于在列表末尾一次性追加另一个序列中的多个值(可以用元组,列表,集合)
>>> list3.extend(list2)                  # 对比一下于用append()方法有何不同 
>>> list3
['a', 'b', 'c', 'd', [1, 2, 3, 4, 'a'], 1, 2, 3, 4, 'a']
>>> list1.extend((1,2,3,4))
>>> list1
[1, 1, 2, 3, 4]
>>> list1.extend({5,6,7,8})
>>> list1
[1, 1, 2, 3, 4, 8, 5, 6, 7]

#insert() 函数用于将指定对象插入列表的指定位置。list.insert(index, obj)
>>> list2
[1, 2, 3, 4, 'a']
>>> list2.insert(1,2)
>>> list2
[1, 2, 2, 3, 4, 'a']

4.从列表中获取元素
  可以通过元素的索引值从列表中获取单个元素

>>> list1=[1, 2, 3, 4, 8, 5]
>>> list1[3]
4

5.从列表中删除元素
  三种方法remove() 、pop()、del

#remove() 函数用于移除列表中某个值的第一个匹配项。 list.remove(obj)
>>> list1=[1, 1, 2, 3, 4, 8, 5, 6, 7]
>>> list1
[1, 1, 2, 3, 4, 8, 5, 6, 7]
>>> list1.remove(2)
>>> list1
[1, 1, 3, 4, 8, 5, 6, 7]

#pop() 函数用于移除列表中的一个元素(默认最后一个元素),并且返回该元素的值。list.pop([index=-1]) 
#index -- 可选参数,要移除列表元素的索引值,不能超过列表总长度,默认为 index=-1,删除最后一个列表值。
>>> list1=[1, 1, 2, 3, 4, 8, 5, 6, 7]
>>> list1.pop()
7
>>> list1
[1, 1, 2, 3, 4, 8, 5, 6]
>>> list1.pop(2)
2
>>> list1
[1, 1, 3, 4, 8, 5, 6]
>>> list1.pop(-1)
6

#del 可以直接删除列表中给的某个元素
>>> list1=[1, 1, 2, 3, 4, 8, 5, 6, 7]
>>> list1
[1, 1, 2, 3, 4, 8, 5, 6, 7]
>>> del list1[2]                   # 删除list1中的第2个元素
>>> list1
[1, 1, 3, 4, 8, 5, 6, 7]

二、元组
1.定义
  元组(Tuple)用于将多个对象保存到一起。你可以将它们近似地看作列表,
  元组使用小括号,元素用逗号隔开
  元组的一大特征是不可变的

2.创建元组

>>> tup1 = (1, 2, 3, 4, 5 )
>>> tup1
(1, 2, 3, 4, 5)
>>> tup2 = "a", "b", "c", "d"  # 不需要括号也可以
>>> tup2
('a', 'b', 'c', 'd')
>>> tup3=()                    # 创建一个空元组      
>>> tup3
()   

#元组中只包含一个元素时,需要在元素后面添加逗号,否则括号会被当作运算符使用:
>>> tup1=(50)
>>> type(tup1)
<class 'int'>
>>> tup2=(50,)
>>> type(tup2)
<class 'tuple'>

3.从元组获取元素
  和列表一样,从元组中获取元素可以采用索引值

>>> tup1 = ('hello', 'world',4,12,2020)
>>> tup1[0]
hello

4.元组的删除
  元组不可变,即不可编辑或更改元组,但是当然可以删去元组

>>> tup1=(1,2,3,4)
>>> tup1
(1, 2, 3, 4)
>>> del tup1
>>> tup1
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'tup1' is not defined

序列
  列表、元组可以看作序列(Sequence)的某种表现形式

1.常用操作符
  1.比较操作符(元素一定要是相同类型才可以进行比较)

>>> list1=[123]
>>> list2=[234]
>>> list1>list2
False
>>> tup1 = (1, 2, 3, 4)
>>> tup2 = (4, 5, 6, 7)
>>> tup1>tup2
False

  2.连接操作符

>>> list1=[123,12]
>>> list2=[9,234]
>>> list3=list1+list2
>>> list3
[123, 12, 9, 234]

>>> tup1 = (1, 2, 3, 4)
>>> tup2 = (4, 5, 6, 7)
>>> tup3=tup1+tup2
>>> tup3
(1, 2, 3, 4, 4, 5, 6, 7)

  3.重复操作符

>>> list1=[123]
>>> list2=list1*4
>>> list2
[123, 123, 123, 123]

>>> tup1 = (1, 2, 3, 4)
>>> tup2=tup1*4
>>> tup2
(1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4)

  4.成员操作符

>>> list1=[1,2,3,4,5]
>>> 1 in list1
True
>>> 2 not in list1
False

>>> tup1 = (1, 2, 3, 4)
>>> 1 in tup1
True
>>> 1 not in tup1
False

2.切片操作符
list[index:endex]
  在切片操作中,第一个数字(冒号前面的那位)指的是切片开始的位置,第二个数字(冒号后面的那位)指的是切片结束的位置。如果第一位数字没有指定,Python 将会从序列的起始处开始操作。如果第二个数字留空,Python 将会在序列的末尾结束操作

>>> list1 = ['apple', 'mango', 'carrot', 'banana']
>>> list1[1:3]
['mango', 'carrot']
>>> list1[:3]
['apple', 'mango', 'carrot']
>>> list1[1:]
['mango', 'carrot', 'banana']
>>> list1[1:-1]
['mango', 'carrot']
>>> list1[:-1]
['apple', 'mango', 'carrot']

  还可以添加第三个数字,即步长(默认为1)

>>> list1[::1]
['apple', 'mango', 'carrot', 'banana']
>>> list1[::2]
['apple', 'carrot']
>>> list1[::3]
['apple', 'banana']
>>> list1[::-1]
['banana', 'carrot', 'mango', 'apple']

  序列的主要功能是资格测试(Membership Test)(也就是使用 in 与 not in 表达式判断元素是否存在)和索引
操作(Indexing Operations),它们能够允许我们直接获取序列中的特定项目。

三、字典
1.定义
  字典是一系列键—值对,是可变的。
  d = {key : value1 , key2 : value2}
  字典就像一本新华字典,如果你知道了要找字的拼音,你就可以在这里找到字,换言之,我们将键值(Keys)(即拼音)与值(即字)联立到一起。在这里要注意到键值必须是唯一的,即不重复的。
  只能使用不可变的对象(如字符串、元组)作为字典的键值,可以使用可变或不可变的对象作为字典中的值

2.创建字典

>>> dict0 = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'}
>>> dict0
{'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'}
>>> dict1 = { 'abc': 456 }
>>> dict1
{'abc': 456}
>>> dict2 = { 'abc': 123, 98.6: 37 }
>>> dict2
{'abc': 123, 98.6: 37}

3.访问字典的值
  把相应的键放入到方括号中,d[key],如下实例:

>>> dict1 = {'Name': 'Tom', 'Age': 15, 'Class': 'First'}
>>> dict1['Name']
'Tom'
>>> dict1['Age']
15

#访问字典不存在的值会出现错误
>>> dict1['score']
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 'score'

4.修改字典中的值
  向字典添加新内容的方法是增加新的键/值对,修改或删除已有键/值对如下所示:

>>> dict1 = {'Name': 'Tom', 'Age': 15, 'Class': 'First'}
>>> dict1
{'Name': 'Tom', 'Age': 15, 'Class': 'First'}
>>> dict1['Name']='Mike'        # 修改Name的值
>>> dict1
{'Name': 'Mike', 'Age': 15, 'Class': 'First'}
>>> dict1['Score']=100          # 插入Score键值
>>> dict1
{'Name': 'Mike', 'Age': 15, 'Class': 'First', 'Score': 100}

#键不能重复,如果同一个键被赋值两次,后一个值会被记住
>>> dict2 = {'Name': 'Tom', 'Age': 7, 'Name': 'Mike'}
>>> dict1['Name']
Mike

5.字典的删除
  可以删除字典中某个元素或者单个元素,或者把整个字典删除掉

>>> dict1 = {'Name': 'Tom', 'Age': 15, 'Class': 'First'}
>>> del dict1['Name']         # 删除键 'Name'
>>> dict1
{'Age': 15, 'Class': 'First'}
>>> dict1.clear()             # 清空字典
>>> dict1
{}
>>> del dict1                 # 删除字典         
>>> dict1
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'dict1' is not defined

6.字典常用的操作运算符

  成员关系操作符
  key in dict 如果键在字典dict里返回true,否则返回false。而key not in dict返回结果则相反

>>> dict1 = {'Name': 'Tom', 'Age': 7, 'Name': 'Mike'}
>>> 'Name' in dict1
True
>>> 'Score' not in dict1
True

四、集合

1.定义
  集合(Set)是简单元素的无重复无序集合(Collection),可变的,元素可以是元组,字符串。
  当集合中的项目存在与否比起次序或其出现次数更加重要时,我们就会使用集合。

2.创建集合
  可以使用大括号 { } 或者 set() 函数创建集合,多个元素用{},单个元素用set()
注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。

>>> basket = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'}
>>> basket
{'banana', 'pear', 'orange', 'apple'} 
>>> basket1=set(basket)
>>>> basket1
{'banana', 'pear', 'orange', 'apple'}

3.修改集合中的值
  1.向集合中添加元素
   可以采用add()或者update()方法

#add()方法是将元素 x 添加到集合 s 中,如果元素已存在,则不进行任何操作。
>>> s=set([1,2,3,4])
>>> s.add(1)
>>> s
{1, 2, 3, 4}
>>> s.add(5)
>>> s
{1, 2, 3, 4, 5}

#用update()也可以添加元素,且参数可以是列表,元组,字典等。
>>> set((1,2,5))
{1, 2, 5}
>>> s=set([1,2,3,4])
>>> s
{1, 2, 3, 4}
>>> s.update([5,6,7,8])
>>> s
{1, 2, 3, 4, 5, 6, 7, 8}
>>> s.update((9,10,11,12))
>>> s
{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}

  2.移除元素
  移除元素用remove()、discard()、pop()、clear()、del

#remove()将元素 x 从集合 s 中移除,如果元素不存在,则会发生错误。
>>> s=set([1,2,3,4])
>>> s
{1, 2, 3, 4}
>>> s.remove(1)
>>> s
{2, 3, 4}
>>> s.remove(1)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 1
    
#discard()也是移除集合中的元素,且如果元素不存在,不会发生错误。
>>> s=set([1,2,3,4])
>>> s
{1, 2, 3, 4}
>>> s.remove(1)
>>> s
{2, 3, 4}
>>> s.discard(1)
>>> s
{2, 3, 4}

#pop() 在脚本模式下随机删除一个元素,但在交互模式下是删除集合中的第一个元素(排序后的第一个元素)
#脚本模式
s=set([1,2,3,4])
x=s.pop()
print(x)
#输出结果
python test.py
1
#每次结果都不相同

#交互模式下
>>> s=set([5,8,9,3,4])
>>> s
{3, 4, 5, 8, 9}
>>> s.pop()
3

#clear() 清空集合中的元素
>>> s=set([1,5,6,3,2,8,9,3,1,10,12])
>>> s
{1, 2, 3, 5, 6, 8, 9, 10, 12}
>>> s.clear()
>>> s
set()

#del 删除整个集合
>>> s=set([1,5,6,3,2,8,9,3,1,10,12])
>>> s
{1, 2, 3, 5, 6, 8, 9, 10, 12}
>>> del s
>>> s
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 's' is not defined

3.访问集合中的元素
  可以用for in语句输出集合中的元素

>>> s=set([1,5,6,3,2,8,9,3,1,10,12])
>>> for i in s:
...     print(i,end=',')
...
1,2,3,5,6,8,9,10,12,

4.集合间的运算

>>> a = set('abracadabra')
>>> b = set('alacazam')
>>> a
{'r', 'c', 'd', 'b', 'a'}
>>> b
{'m', 'c', 'z', 'l', 'a'}			   # 集合b是不是集合a的子集
>>> a.issuperset(b)
False
>>> a - b                              # 集合a中包含而集合b中不包含的元素
{'r', 'd', 'b'}
>>> a | b                              # 集合a或b中包含的所有元素
{'a', 'c', 'r', 'd', 'b', 'm', 'z', 'l'}
>>> a & b                              # 集合a和b中都包含了的元素
{'a', 'c'}
>>> a ^ b                              # 不同时包含于a和b的元素
{'r', 'd', 'b', 'm', 'z', 'l'}
>>> 1 in a                             # 判断元素是否在集合中存在
False
>>> 'a' in a                           # 判断元素是否在集合中存在
True
>>> 'b' not in a                       # 判断元素是否在集合中存在  
False
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值