python 容器(列表,集合,元组,字典)

目录

一、列表(list(线性表))

1.1列表的定义:

1.2.访问形式:

1.3.遍历列表

1.4 常见方法

二、集合(set)---- 哈希结构

2.1集合的基础概念

2.2常见方法

三、元组(tuple)

3.1元组的基础概念

3.2常见方法

四、字典(dict)

4.1字典的基本概念

4.2常见方法


一、列表(list(线性表))

线性表(常见线性表数组 栈 队列 链表(单向链表和双向链表))是属于一种数据结构 python中列表是基于链表(双向链表)实现

1.1列表的定义:

(1)a=[1,2,3]的形式定义,其类似与c语言中的数组形式

(2)a=list()的形式,即a=list([1,2,3])

1.2.访问形式:

通过下标进行访问,通常下标从0开始,也可以是负数(其最后一位数是从下标-1开始标记)

>>> a=[1,2,5,6]
>>> a
[1, 2, 5, 6]
>>> a[2]
5
>>> a[-1]
6

1.3.遍历列表

通过循环进行遍历

# 遍历列表
for i in a:
	print(i)
# 通过len计算列表长度即下标长度
i=0
while i<len(a):
	print(a[i],end=" ")
	i+=1

1.4 常见方法

[ 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']

(1)append()----------向列表添加元素

>>> a=[1,2,3,4]
>>> a.append(8)
>>> a
[1, 2, 3, 4, 8]

(2)insert(index,object) ------- 向指定位置即下标(index)添加元素

>>> a=[1,2,3,4]
>>> a.insert(2,8)
>>> a
[1, 2, 8, 3, 4]

(3)sort()--------列表进行排序,从小到大,其他类型也可以排序(按照ASCII的值),但数据类型必须一致。

>>> a=[2,1,4,6,7]
>>> a.sort()
>>> a
[1, 2, 4, 6, 7]

(4)index() -------- 查找元素的位置,返回的是下标,如果元素有重复的情况下,返回的是元素第一次出现的位 置,如果元素不存在会报错。

>>> b=[1,4,6,8,9]
>>> b.index(6)
2

(5)reverse()--------倒序输出

>>> a=[1,2,3,4]
>>> a.reverse()
>>> a
[4, 3, 2, 1]

(6)remove()--------通过元素删除列表中的元素,如果元素不存在会抛出异常(报错)

>>> a=[1,2,6,8]
>>> a.remove(8)
>>> a
[1, 2, 6]

(7)count()-----统计元素在列表中出现的次数

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

(8)clear()------清除元素(注意:慎用)

>>> a=[1,2,3,4]
>>> a.clear()
>>> a
[]

(9)copy()------拷贝列表

>>> a=[1,2,3,4]
>>> b=['A','B','C']
>>> b=a.copy()
>>> b
[1, 2, 3, 4]

(10)extend()------合并列表

>>> a=[1,2,3,4]
>>> b=['a','b','c']
>>> a.extend(b)
>>> a
[1, 2, 3, 4, 'a', 'b', 'c']

(11)pop()-------从末尾删除元素,有返回值,返回值是删除掉的这个元素,要删除指定位置的元素pop(index)

>>> a=[1,2,3,4]
>>> a.pop()
4
>>> a.pop(1)
2

补充: 1. 通过下标可以修改某个元素的值 2. 列表中的元素类型可以不同 3. 列表中的元素也可以是列表,如:[1, 2, 3, [1, 2, 3], 4, 5]

二、集合(set)---- 哈希结构

2.1集合的基础概念

创建方法:(1)a={1,2,3},  (2)a=set({1,2,3})

集合特点:无序的,不能重复的(无序并不是指顺序 hash底层 )

2.2常见方法

['add', 'clear', 'copy', 'difference', 'difference_update', 'discard', 'intersection', 'intersection_update', 'isdisjoint', 'issubset', 'issuperset', 'pop', 'remove', 'symmetric_difference', 'symmetric_difference_update', 'union', 'update'] 

其中clear、copy、remove与列表相似

add()--------添加元素,如果添加元素相同,则不会报错,不会被二次添加

>>> a={1,2,3,4,5}
>>> a.add(9)
>>> a
{1, 2, 3, 4, 5, 9}

difference()-------差集,看对象是谁即对谁取差集

>>> a={1,2,3,4,7,8}
>>> b={6,7,8,9}
>>> a.difference(b)
{1, 2, 3, 4}
>>> b.difference(a)
{9, 6}

intersection()------交集

>>> a={1,2,3,4}
>>> b={4,5,6}
>>> a.intersection(b)
{4}

union()------并集

>>> a={1,2,3}
>>> b={4,5,3}
>>> a.union(b)
{1, 2, 3, 4, 5}

update()------------更新集合,将并集后重新赋值给集合

>>> a={1,2,3}
>>> b={4,5,6}
>>> a.update(b)
>>> a
{1, 2, 3, 4, 5, 6}

discard()-------移除元素,如果元素不存在不做任何操作

>>> a={1,2,3,4}
>>> a.discard(3)
>>> a
{1, 2, 4}

三、元组(tuple)

3.1元组的基础概念

创建元组的方法: 1. t = (1,2,3,4) 2. t = tuple()

通过下标获取元素 t[0]

注意:

有序的、元组是一个不可变类型(元组的元素一旦确定下来是不可变的)-------- 能用元组的情况下尽 量不要用列表,因为元组相对于安全

3.2常见方法

['count', 'index']其与列表的方法相似(具体见列表)

补:元组是不可变的(下标),但元组中的元素是可变的(对其中的列表中的元素进行修改)

>>> b=(1,2,3,[1,2,3])
>>> b
(1, 2, 3, [1, 2, 3])
>>> b[3][1]=4
>>> b
(1, 2, 3, [1, 4, 3])

四、字典(dict)

4.1字典的基本概念

键值对(key-value)存储值(两列多行的二维表)

创建方法:1、a={"A":"beauty","B":"python"}     2、a=dict()

如何访问字典中的值:

通过key去访问value  d["A"],如果没有这个value抛出异常 通过key修改value的值 通过key添加键值对(新key =新值 )

# 修改值
a["A"]=20
# 添加值
a["C"]="zuo"
print(a)

遍历字典:

>>> a={"A":"beauty","B":"py"}
>>> for i in a:
...     print(i,a.get(i))
...
A beauty
B py
>>> for i in a.keys():
...     print(i,a[i])
...
A beauty
B py
>>> for i,j in a.items():
...     print(i,j)
...
A beauty
B py

4.2常见方法

['clear', 'copy', 'fromkeys', 'get', 'items', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values']

clear,copy与列表相似

get()------获取(通过key获取value,没有key返回none)

>>> a={"a":"beauty","b":"py"}
>>> a.get("b")
'py'

keys()---- 返回所有的键(key)

>>> a={"A":"beauty","b":"py"}
>>> a.keys()
dict_keys(['A', 'b'])

values() ----- 返回所有的值value

>>> a={"age":20,"name":77}
>>> a.values()
dict_values([20, 77])

items() ----- 返回所有的键值对

>>> b={"age":18,"name":"zuo"}
>>> b.items()
dict_items([('age', 18), ('name', 'zuo')])

setdefault() ----- 设置默认值,当没有相应的键则返回None

>>> d
{'name': 'zhangsan', 'age': 20, 'gender': '男'}
>>> d.setdefault("name")
'zhangsan'
>>> d.setdefault("password")
>>> d
{'name': 'zhangsan', 'age': 20, 'gender': '男', 'password': None}

pop(key) ---- 通过key去移除键值对,如果没有这个key会抛出异常

>>> d
{'name': 'zhangsan', 'age': 20, 'gender': '男', 'password': None}
>>> d.pop("gender")
'男'
>>> d
{'name': 'zhangsan', 'age': 20, 'password': None}

popitem() ----- 移除键值对,根据后进先出的顺序进行删除

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

左水水%

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

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

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

打赏作者

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

抵扣说明:

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

余额充值