标签:检测 nio pad count 标示 数据集 更新 nta 购物车
数据类型的分类
数字、字符串、列表、元组、字典、集合
1.1、数字int型,主要是用来计算的。
1.1.1、布尔值型bool
真 1 True
假 0 False
2.1、字符串str
2.1.1、字符串的索引与切片
索引即下标,就是字符串组成的元素从第一个开始,初始索引为0。
|
1
2
3
4
5
|
a = ‘ABCD‘print(a[0]) ===> Aprint(a[1]) ===> Bprint(a[2]) ===> Cprint(a[3]) ===> D |
切片就是通过索引(索引:索引:步长)截取字符串的一段,形成新的字符串(原则是顾头不顾腚)。
|
1
2
3
4
5
6
7
|
a = ‘ABCDEF‘print(a[0:2]) ===> ABprint(a[2:4]) ===> CDprint(a[0:]) ===> ABCDEF #默认到最后print(a[0:-1]) ===> ABCDEF #-1就是最后一个print(a[0:5:2]) ===> ACE #步长2print(a[5:0:-2])===> FDB # 反向加步长 |
2.1.2 字符串的常用方法。
View Code
View Code3.1 元组 tupe
元组也称为只读列表,数据只可以被查询,不能被修改。字符串的切片操作同样适用于列表。列表用()标示,黎明的元素用逗号隔开。如(1,2,3)
4.1 列表 list
列表是python的基础数据类型之一,是用[]括起来,每个元素以逗号隔开,里面可以存放各种数据类型。如:
li = [‘sunshine‘,18,{‘hobby‘:‘eat‘},[1,2,3]]
列表还可以储存大量数据,32位python的限制是536870912个元素,64位python的限制是1152921504606846975 个元素。
列表是有序的,有索引值,可以切片,方便取值。
4.1.1 增
insert_append_extend4.1.2 删
pop_del_remove_clear4.1.3 改
View Code4.1.4 查
通过切片的方式或者循环的方式去查。
4.1.5 其它操作
count (数) 统计某个元素在列表中出现的次数。
|
1
2
|
a = [‘s‘,‘u‘,‘n‘,‘s‘,‘h‘,‘i‘,‘n‘,‘e‘]print(a.count(‘s‘)) # 出现了2次 |
index 方法 用于从列表中找出某个值第一个匹配项的索引位置
|
1
2
|
a = [‘s‘,‘u‘,‘n‘,‘s‘,‘h‘,‘i‘,‘n‘,‘e‘]print(a.index(‘n‘)) # 第一个出现n的索引位置为 2 |
sort 在原位置对列表进行排序
|
1
2
3
4
|
a = [‘s‘,‘u‘,‘n‘,‘s‘,‘h‘,‘i‘,‘n‘,‘e‘]print(a.sort()) # 输出为 Nonea.sort() # 没有返回值print(a) # [‘e‘, ‘h‘, ‘i‘, ‘n‘, ‘n‘, ‘s‘, ‘s‘, ‘u‘] |
reverse 将列表中的元素反向存放
|
1
2
3
4
|
a = [‘s‘,‘u‘,‘n‘,‘s‘,‘h‘,‘i‘,‘n‘,‘e‘]# print(a.reverse()) # 输出为 Nonea.reverse() # 没有返回值print(a) # [‘e‘, ‘n‘, ‘i‘, ‘h‘, ‘s‘, ‘n‘, ‘u‘, ‘s‘] |
5.1 字典 dict
字典是Python中唯一的映射类型,采用键值对(key-->value)的形式存储数据。Python 对key进行哈希函数运算,根据运算的结果决定value的存储地址,所以字典是无序存储的,且key必须是可哈希的。可哈希表示kye必须是不可变类型,如:数组、字符串、元组。
字典是除列表之外最灵活的内置数据结构类型。列表是有序的对象结合,字典是无序的对象结合。两者的区别在于:字典是通过key来取值的,而不是通过偏移存取。
5.1.1 增
setdefaut5.1.2 删
pop_popitem_clear5.1.3 改
update5.1.4 查
get5.1.5 其它
View Code5.1.6 字典的循环
key_value_items6.1 其它 range / enumerate / range
6.1.1 for 循环:用户按照顺序循环可迭代对象的内容。
for6.1.2 enumerate 枚举,对于一个可迭代的对象(iterable)/ 可遍历的对象(list,str等),enumerate将其组成一个索引序列,利用它可以同时获得索引和值
View Code6.1.3 range 指定范围,生成指定数字
range7.1 集合
集合是无序的,不重复的数据集合,它里面的元素是可哈希的(不可变类型),但是集合本身是不可哈希的。主要作用是:
1、去重 ---> 把一个列表变成集合,就自动去重了。
2、关系测试 --> 测试两组数据之间的交集、差集、并集等关系。
7.1.1 创建集合
|
1
2
3
4
|
set1 = set({1,2,‘sunshine‘})set2 = {1,2,‘sunshine‘}print(set1,type(set1)) # {1, 2, ‘sunshine‘} <class ‘set‘>print(set2,type(set2)) # {1, 2, ‘sunshine‘} <class ‘set‘> |
7.1.2 增
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
set1 = {‘sunshine‘,‘age‘,18}set1.add(‘hobby‘)print(set1) # {18, ‘age‘, ‘sunshine‘, ‘hobby‘} 集合是无序的set1.update(‘A‘)print(set1) # {‘A‘, ‘sunshine‘, 18, ‘hobby‘, ‘age‘}set1.update(‘BC‘)print(set1) # {‘C‘, ‘A‘, ‘sunshine‘, 18, ‘B‘, ‘hobby‘, ‘age‘}set1.update([1,2,3])print(set1) # {1, 2, 3, ‘C‘, ‘A‘, ‘sunshine‘, 18, ‘B‘, ‘hobby‘, ‘age‘}# 复制集合num1 = {1,2,3}num2 = num1.copy()print(num2) # {1, 2, 3} |
7.1.3 删
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
set1 = {‘sunshine‘,‘age‘,18}set1.remove(‘sunshine‘) # 删除一个元素print(set1) # {‘age‘, 18}set1.pop() # 随机删除一个元素print(set1) # {‘age‘}set1.clear() # 清空集合print(set1) # set()del set1 # 删除集合print(set1) # 报错 NameError: name ‘set1‘ is not defined# discard() 删除集合中指定的元素,删除不存在的则不操作num = {1,2,3}num.discard(4)print(num) # {1, 2}num.discard(3)print(num) # {1, 2, 3} |
7.1.4 其它操作
|
1
2
|
set1 = {1,2,3}set2 = {2,3,4} |
交集 (& 或 intersection)
|
1
2
3
4
5
6
7
8
|
print(set1 & set2) # {2, 3}print(set1.intersection(set2)) #{2, 3}# intersection_update 交集更新操作dreamers = {‘ljl‘,‘wc‘,‘xy‘,‘zb‘,‘lsy‘}girls = {‘mmf‘,‘lsy‘,‘syj‘}dreamers.intersection_update(girls) # 将集合dreamers与集合girls的交集赋值给dreamersprint(dreamers) # {‘lsy‘} |
并集 (| 或 union)
|
1
2
|
print(set1 | set2) # {1, 2, 3, 4}print(set2.union(set1)) # {1, 2, 3, 4} |
差集 (- 或 difference)
|
1
2
3
4
5
6
7
8
|
print(set1 - set2) # {1}print(set1.difference(set2)) # {1}# difference_update 差集更新操作。dreamers = {‘ljl‘,‘wc‘,‘xy‘,‘zb‘,‘lsy‘}girls = {‘mmf‘,‘lsy‘,‘syj‘}dreamers.difference_update(girls)# dreamers去除跟girls相同的元素print(dreamers) #{‘zb‘, ‘ljl‘, ‘xy‘, ‘wc‘} |
反交集 (^ 或 symmetric_difference)
|
1
2
|
print(set1 ^ set2) # {1, 4}print(set1.symmetric_difference(set2)) # {1, 4} |
子集与超集 (issubset / issuperset)
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
set1 = {1,2,3}set2 = {1,2,3,4,5}print(set1 < set2) # Trueprint(set1.issubset(set2)) # True 说明set1 是 set2 的子集print(set2 > set1) #Trueprint(set2.issuperset(set1)) #True 说明set2 是 set1 的超集# isdisjoint() # 检测2个集合是否不存在交集,存在交集则返回Falseres = set2.isdisjoint(set1)print(res) # False#symmetric_difference() 对称差集set1 = {1,2,3}set2 = {2,3,4}res = set1.symmetric_difference(set2)print(res) # {1, 4}#symmetric_difference_update() 对称更新差集set1.symmetric_difference_update(set2)print(set1) # {1, 4} |
forzenset 不可变集合,让集合变成不可变类型
|
1
2
|
a = frozenset(‘sunshine‘)print(a,type(a)) # frozenset({‘e‘, ‘s‘, ‘n‘, ‘i‘, ‘u‘, ‘h‘}) <class ‘frozenset‘> |
集合的一些应用
View Code练习题:
购物车
功能要求:
要求用户输入总资产,例如:2000
显示商品列表,让用户根据序号选择商品,加入购物车购买,如果商品总额大于
总资产,提示账户余额不足,否则,购买成功
goods = [
{"name":"电脑","price":1999},
{"name":"鼠标","price":10},
{"name":"游艇","price":20},
{"name":"美女","price":998}
]
标签:检测 nio pad count 标示 数据集 更新 nta 购物车
原文地址:https://www.cnblogs.com/valorchang/p/11282145.html