Python容器解析(第四天)

容器

一、列表(list)

列表是顺序表,可以存放多种类型的数据,可以变。

创建列表的三种方式:

  1. [a,b,c]
  2. list(a,b,c)
  3. 从字符串转换

list()可将元组转化为列表

>>> a = list ["fanlinfei"]
>>> a
['f', 'a', 'n', 'l', 'i', 'n', 'f', 'e', 'i']

访问列表中的元素的方式:
利用下标(下标从0开始),使用下标越界时将会报错。

>>> a[5]
'n'
>>> a[10]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: list index out of range
>>>

修改列表中元素的方式:
利用a[下标] = 新值,进行赋值。

>>> a[0] ='m'
>>> a
['m', 'a', 'n', 'l', 'i', 'n', 'f', 'e', 'i']

遍历元素的方式:
1、while

a = ['你','我','他','她','它']
i = 0
while i < len(a)
	print(a[i])
	i += 1

2、for

a = ['你','我','他','她','它']
for i in a:
	print(i)

3、依次遍历

a = [1,2,3,4,5]
print(a[0])
print(a[1])
print(a[2])
print(a[3])
print(a[4])

求列表长度的方式:
1、全局函数len

>>> a = [1,2,3,4,5]
>>> len(a)
5

2、使用while循环遍历

index = 0
   while index < len(a):
       print(a[index])
       index += 1

列表的常用方法

  1. append 在尾部追加一个新的元素
>>> a = [1,2,3,4,5]
>>> a.append (8)
>>> a
[1, 2, 3, 4, 5, 8]
>>>
  1. clear 清空容器
>>> a
[1, 2, 3, 4, 5, 8]
>>> a.clear()
>>> a
[]
>>>
  1. copy 浅拷贝list,一定分别出拷贝和引用传递
>>> a = [1,2]
>>> aa = a.copy()
>>> aa
[1, 2]
>>>
  1. count 统计元素在列表中的个数
>>> a.count(0)
0
>>> a.count(1)
1
  1. index 查询元素在列表中第一次出现的下标位置,注意: 如果列表中不存在该元素,则抛出异常
>>> a.index(1)
0
>>> a.index(0)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: 0 is not in list
>>>
  1. insert 制定要插入的元素的位置
>>> a.insert(999,0)
>>> a
[1, 2, 0]
>>> a.insert(0,999)
>>> a
[999, 1, 2, 0]
>>>
  1. pop 通过下标移除元素,注意:默认没有下标时删除最后一个
>>> a.pop()
0
>>> a
[999, 1, 2]
>>> a.pop(1)
1
>>> a
[999, 2]
>>>
  1. remove 移除对应的元素,,注意:如果列表中不存在该元素,则抛出异常
>>> a.remove(0)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: list.remove(x): x not in list
>>> a.remove(999)
>>> a
[2]
  1. reverse 翻转元素的顺序
>>> a
[1, 2, 3]
>>> a.reverse()
>>> a
[3, 2, 1]
>>>
  1. sort 排序(主要针对数字)
>>> a
[3, 2, 1]
>>> a.sort()
>>> a
[1, 2, 3]
>>>
  1. extend 合并列表
>>> a = [1]
>>> b = [2]
>>> a.extend(b)
>>> a
[1, 2]

二、集合(set)

使用全局函数 : set()
注意:如果没有初始化的值,不要直接使用 { } 反向定义,默认字典类型
特点:元素唯一,不允许重复,无序的
>>> a = set({1,2,3,4,5,5,4,3,2,1})
>>> a
{1, 2, 3, 4, 5}
set 的常用方法
  1. add:添加元素
>>> a.add(1)
>>> a.add(6)
>>> a
{1, 2, 3, 4, 5, 6}
>>>
  1. clear:清空集合
>>> a.clear()
>>> a
set()
>>>
  1. copy:复制
>>> c = a.copy()
>>> c
{1, 2, 3, 4, 5, 6}
>>>
  1. difference:求a对b差集
>>> a.difference(b)
{1, 2}
>>>
  1. discard:移除元素
>>> a.discard(1)
>>> a
{2, 3, 4, 5, 6}
>>>
  1. intersection:求两个集合的交集
>>> a.intersection({4,5,6,7,8,9})
{4, 5, 6}
>>>
  1. pop
>>> a.pop
<built-in method pop of set object at 0x000001E103C5EE48>
>>> a.pop(1)
Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
TypeError: pop() takes no arguments (1 given)
>>>
  1. remove:移除元素
>>> a.remove(1)
>>> a
{2, 3, 4, 5}
>>>
  1. union: 求两个集合的并集合
>>> a
{1, 2, 3, 4, 5, 6}
>>> b = set({3,4,5,6,7})
>>> a.union(b)
{1, 2, 3, 4, 5, 6, 7}
>>>

三、元组(tuple)

元组(tuple) 不可变类型
元组也是通过下标访问的!!!

创建元组查询下标为0的元组元素;

>>> a = tuple()
>>> a
()
>>> a = tuple((1,2,3,4))
>>> a
(1, 2, 3, 4)
>>>
>>> a[0]
1
常用方法:
  1. count 求元素个数
>>> a.count(0)
0
>>> a.count(1)
1
  1. index
>>> a.index(0)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: tuple.index(x): x not in tuple
>>> a.index(1)
0

注意:元组是不可变类型,意味着当元组中的值定义好之后,再无法修改,但是注意,如果元组的元素是可变类型,那么该元组是可变的!
注意2:在定义元组时,如果只有一个元素,那么一定要在该元素后面加个逗号,否则Python解释器会将该元组当成一个数字对待(圆括号就数学上的含义)

>>> b = tuple()
>>> b = (1)
>>> type(b)
<class 'int'>
>>> b = (1,)
>>> type(b)
<class 'tuple'>
>>>

四、字典(dict)

Python中的字典类型,key必须是字符串!!!
定义方法:

1、{}
2、{“a”: “b”, “c”: 1}
3、dict()
4、dict({“a”: “b”, “c”: 1})

访问元素方法:

1、d[key]
2、d[key] = 新值 当key不存在时,则新增这个键值对。

常见的方法:

1、'clear’清空字典

>>> a.clear()
>>> a
{}

2、‘copy’

>>> a = dict({'1':1,'2':2})
>>> b = a.copy()
>>> b
{'1': 1, '2': 2}
>>>

3、‘fromkeys’:
结构:d.fromkeys(容器,值)

>>> a
{'1': 1, '2': 2}
>>> a.fromkeys(['4','5','6'])
{'4': None, '5': None, '6': None}
>>>

4、‘get’:输入键得到值

>>> a.get('1')
1

5、‘items’:返回所有键值对

>>> a.items()
dict_items([('1', 1), ('2', 2)])
>>>

6、‘keys’:以list返回所有键

>>> a.keys()
dict_keys(['1', '2'])

7、‘pop’

>>> a
{'1': 1, '2': 2}
>>> a.pop('1')
1

8、'popitem’压栈一个键值对

>>> a.popitem()
('2', 2)

9、‘values’:以list返回所有值

>>> a.values()
dict_values([1, 2])
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值