容器数据类型,列表推导式

容器数据类型的使用
列表与元组

特点:有序,可变的数据类型
包含不同类型的数据
列表可以由[]或工厂函数创建
支持下标及切片 L.append(添加数据) 通过下标更新值
L=[1,2,3,4,5]
print(L)
[1, 2, 3, 4, 5]
L[0:2]
[1, 2]
L[0:2]=[‘a’,‘b’,‘c’]
print(L)
[‘a’, ‘b’, ‘c’, 3, 4, 5]
L[0:2]=[‘am’,‘bn’,]
print(L)
[‘am’, ‘bn’, ‘c’, 3, 4, 5]

列表内建函数
1、添加 append(值)默认添加列表最后
print(L5)
[‘root’, ‘a’, ‘rty’, ‘rty’, ‘rty’, ‘b’, ‘c’, ‘d’]
L5.append(1)
print(L5)
[‘root’, ‘a’, ‘rty’, ‘rty’, ‘rty’, ‘b’, ‘c’, ‘d’, 1]
2、插入 insert (下标,值)指定位置
L5.insert(2,‘rty’)
print(L5)
[‘root’, ‘a’, ‘rty’, ‘rty’, ‘rty’, ‘b’, ‘c’, ‘d’]
3、 某值在列表中出现次数 count(值)
print(L5)
[‘root’, ‘a’, ‘rty’, ‘rty’, ‘rty’, ‘b’, ‘c’, ‘d’, 1]
L5.count(“rty”)

4、返回对象的下标(多个值返回第一次出现的下标) index(值)
print(L5)
[‘root’, ‘a’, ‘rty’, ‘rty’, ‘rty’, ‘b’, ‘c’, ‘d’, 1]
L5.index(“a”)
1
L5.index(“rty”)
2
5、 值 in 列表----- 判断值是否在列表
not in 取反
‘q’ not in L5
True
‘q’ in L5
False
6、 reverse () 原地翻转列表
L6=list(‘afery’)
L6.reverse()
print(L6)
[‘y’, ‘r’, ‘e’, ‘f’, ‘a’]
7、sort() 数值排队 (升序)
L7=[12,14,67,1,0]
print(L7)
[12, 14, 67, 1, 0]
L7.sort()
print(L7)
[0, 1, 12, 14, 67]
8、 extend 列表 把其他列表元素追加到当前列表里
L8=list(‘abc’)
print(L8)
[‘a’, ‘b’, ‘c’]
L8.extend(L7)
print(L8)
[‘a’, ‘b’, ‘c’, 0, 1, 12, 14, 67]
9、 remove 删除列表指定元素
print(L9)
[1, 2, 3]
L9.remove(2)
print(L9)
[1, 3]
10、 pop 默认删除列表最后一个元素,同时弹出被删除元素,可将删除元素放到变量里备份
print(L8)
[‘a’, ‘b’, ‘c’, 0, 1, 12, 14, 67]
L8.pop()
67
m=L8.pop()
print(L8)
[‘a’, ‘b’, ‘c’, 0, 1, 12]
11、del 清空列表
del L8
print(L8)
Traceback (most recent call last):
File “”, line 1, in
NameError: name ‘L8’ is not defined

元组数据类型

特点:有序的,不可变类型
通过()或 tuple()创建
如果元组中只有一个元素,需要用’ ,’ 结尾,否则当字符处理
支持切片和下标
没有添加,删除修改命令,因为元组不可变
判断数据是否在元组里 in not in
字典,

特点: 没有下标

          通过{ }创建     dict()工厂方法创建       fromkeys() 创建相同值的默认字典
           d1 = {}

d2 = dict()
type(d1)
<class ‘dict’>
type(d2)
<class ‘dict’>

          通过键值访问字典元素

print(d4)
{‘name’: ‘aa’, ‘gender’: ‘boy’, ‘age’: 50}
d4[‘name’]
‘aa’
如果键值存在就是更新,不存在就是添加
d4[‘school’]=“tarena”
d4
{‘name’: ‘aa’, ‘gender’: ‘boy’, ‘age’: 50, ‘school’: ‘tarena’}
d4[‘name’]=“qwr”
d4
{‘name’: ‘qwr’, ‘gender’: ‘boy’, ‘age’: 50, ‘school’: ‘tarena’}
删除del 删除字典中的元素或整个字典
d4
{‘name’: ‘qwr’, ‘gender’: ‘boy’, ‘age’: 50, ‘school’: ‘tarena’}
del d4[‘name’]
d4
{‘gender’: ‘boy’, ‘age’: 50, ‘school’: ‘tarena’}
clean()清空字典
d4.clear()
d4
{}

          pop 默认删除列表最后一个元素,同时弹出被删除元素,可将删除元素放到变量里备份
            判断元素是否在字典里---列名   in      not in

d4 = {“name”:“aa”,“gender”:“boy”,“age”:50}
‘name’ in d4
True
‘bn’ in d4
False

相关函数
len()返回元素个数 通用函数统计长度
hash()判断某个值是否可以做字典的列名
字典内建方法
copy() 拷贝,
d4.copy()
{‘name’: ‘aa’, ‘gender’: ‘boy’, ‘age’: 50}
d41=d4.copy()
d41
{‘name’: ‘aa’, ‘gender’: ‘boy’, ‘age’: 50}
get( None ) 输出列名,没有则输出值
d1 = {‘name’:‘bob’,‘age’:12,‘gender’:‘boy’}
d1
{‘name’: ‘bob’, ‘age’: 12, ‘gender’: ‘boy’}
d1.get(‘name’)
‘bob’
d1.get(‘school’,‘none’)
‘none’
setdefault()
d1.setdefault(‘name’)
‘bob’
d1.setdefault(‘school’,‘tarena’)
‘tarena’
items() 返回一个包含字典中的元组列表
d4.items()
dict_items([(‘name’, ‘aa’), (‘gender’, ‘boy’), (‘age’, 50)])
keys() 返回字典中所有列名
d4.keys()
dict_keys([‘name’, ‘gender’, ‘age’])
values() 返回字典中的值
d4.values()
dict_values([‘aa’, ‘boy’, 50])
update() 将字典的值添加到另一个字典中
d4
{‘name’: ‘aa’, ‘gender’: ‘boy’, ‘age’: 50}
d5={“acb”,5}
d5.update(d4)
print(d5)
{5, ‘name’, ‘acb’, ‘gender’, ‘age’}

使用for循环遍历字典,输出每个元素的值

for i in d1.keys():
… print(i)

name
age
gender
school
for i in d1.keys():
… print(d1[i])

bob
12
boy
tarena
for i in d1.values():
… print(i)

bob
12
boy
tarena
将值和列名一起输出
for i,j in d1.items():
… print(i,j)

name bob
age 12
gender boy
school tarena

集合-
-容器数据类型 可存储多个数据 无序,可变,值不允许重复
创建 set 可变集合
frozenset 不可变集合
集合支持in和 not in元素是否在集合中
len()检查集合大小
for迭代集合
不支持键值和切片
集合内建方法
set.add() 添加
set.update()批量添加
set.remove()移除

| 并集 s.union(t) : 相当于并集(符号两边的集合合并 去掉重复值)
& 交集 s.intersection(t) :相当于交集(两个集合中都有的数据)

  • 差集 s.difference(t) :相当于差集(符号左边和右边比较,只显示左边比右边多的数据)
    ●s.issubset(t) :子集
    ●s.issuperset(t) :超集

列表推导式 ;列表解析
简化列表创建(用来有规律的列表数据)
格式 [ 返回值 for 变量名 in 可迭代对象 ]
L1 = [1,2,3,4,5,6,7,8,9,10]
L1
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
L2 = [x for x in range(1,11)]
L2
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

扩展
L5 = [(i,j) for i in range(1,3) for j in range(0,3)]
L5
[(1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]
合并列表,创建字典
lista=[“name”,“age”,“gender”]
listb=[“jerry”,“20”,“girl”]
dict1={ lista[i]:listb[i] for i in range(len(listb))}
dict1
{‘name’: ‘jerry’, ‘age’: ‘20’, ‘gender’: ‘girl’}
在字典中获取指定数据
worker={“linux”:18000,“java”:12000,“php”:8000,“python”:16000,“aid”:7800,“bigdata”:20000}
for k,v in worker.items():
… print(k,v)

linux 18000
java 12000
php 8000
python 16000
aid 7800
bigdata 20000
num = {k:v for k,v in worker.items() if v < 10000}
print(num)
{‘php’: 8000, ‘aid’: 7800}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值