Python学习(七)——序列、列表、元组、range、字符串、字典、聚集、可变类型&不可变类型
本文介绍了序列、列表、元组、range、字符串、字典、聚集、可变类型&不可变类型,仅作为本人学习时记录,感兴趣的初学者可以一起看看,欢迎批评区讨论,一起加油鸭~~~
心中默念:Python 简单好学!!!
(有其他编程语言基础,所以记录的可能对开端打仗编程的同学不太友爱,有题目欢迎留言)
序列
在python中,有这样一些类型,它们的成员是有序排列的,并且可以通过下标访问成员,这些类型称之为序列。
包括:列表、range、元组和字符串。
序列的通用操作
- len(item):盘算容器中元素个数
- del(item):删除变量(del有两种方式)
- max(item):返回容器中元素最大值(假如是字典,只针对key比力)
- min(item):返回容器中元素最小值(假如是字典,只针对key比力)
- 切片:0123456789[::-2]---->97531(支持的数据类型:字符串、列表、元组)
- +:合并(字符串、列表、元组)
- *:重复(字符串、列表、元组)
- in:元素是否存在(字符串、列表、元组、字典)
- not in:元素是否不存在(字符串、列表、元组、字典)
- = == < <=:元素比力(字符串、列表、元组)
列表
界说
- List(列表)是Python中使用最频仍的数据类型,在其他语言中通常叫做数组
- 专门用于存储一串信息
- 列表用==[ ]界说,数据之间使用,==分隔
- 列表的索引从0开始
- 索引就是数据在列表中的位置编号,索引又可以被称为下标
- 注意:从列表中取值时,假如超出索引范围,程序会报错
创建列表
语法:列表名=[元素1,元素2,…]
示例代码
- # 列表的创建
- list1 = [] #空列表
- print(list1)
- print(type(list1))
- list2 = [1,2,3,False,True,'hello']
- print(list2)
- list3 = list() # 类型转换:把参数转换为列表
- print(list3)
- list3 = list('1234567') # 类型转换:str-->list
- print(list3)
- # 列表的索引
- print(list3[5])
- # 列表的切片
- print(list3[2:6:2])
- #列表的加法和乘法
- print(list3 + list2)
- print(list3 * 3)
- # 列表的成员运算
- print('1' in list3)
- print('1' in [1,2,3,4])
- print([1,2,3,4] < [2,3])
- # 内置函数 函数名()
- print(len(list3)) # 求元素个数
- print(max(list3)) # 求元素的最大值
- print(min(list3)) # 求元素的最小值
- # del list3 # 删除变量
- # print(list3)
- print('-' * 30)
- # 列表的遍历
- for i in list2:
- print(i)
- for i,j in enumerate(list2): # 枚举
- print(i,j)
- for i in range(len(list2)):
- print(i,list2[i])
- # 列表的常用方法method 变量.方法名()
- # 添加元素
- list3.append('666')
- print(list3)
- # 添加列表
- list3.extend([1,2,3])
- print(list3)
- # 插入元素
- list3.insert(2,'hello')
- print(list3)
- # 根据索引删除元素
- list3.pop(3)
- print(list3)
- # 根据元素删除
- list3.remove('7')
- print(list3)
- list3.append('hello')
- print(list3)
- list3.remove('hello')
- print(list3)
- # 清空列表
- list3.clear()
- print(list3)
- # 计算若干个人的平均年龄
- age = [10,20,30,40,23,45]
- # 直接求和sum()
- print(sum(age)/len(age))
- total = 0
- for i in age:
- total += i
- print(total / len(age))
复制代码
元组
界说
- Tuple(元组)与列表类似,不同之处在于元组的元素不能修改
- 元组表示多个元素组成的序列
- 用于存储一串信息,数据之间使用,分隔
- 元组用()界说
示例代码
- # 元组的创建
- tuple1 = (1,2,3,True,'hello')
- print(tuple1)
- print(type(tuple1))
- list1 = [1]
- print(list1)
- # 元组里只有一个元素时,加一个逗号
- tuple2 = (1,) # ()除了定义元组,还是数学中优先运算符号
- print(tuple2)
- print(type(tuple2))
- tuple3 = tuple() # tuple():类型转换
- print(tuple3)
- print(type(tuple3))
- tuple4 = ()
- print(tuple4)
- print(type(tuple4))
- tuple5 = tuple('hello') # str-->tuple
- print(tuple5)
- tuple6 = tuple([1,2,3,4]) # list-->tuple
- print(tuple6)
- list1 = list(tuple6) # tuple-->list
- print(list1)
- str1 = str(tuple6) # tuple-->str
- print(str1)
- print(type(str1))
- print(str1[2])
- # 序列的通用操作
- print('-'*30)
- # 索引
- print(tuple1[-1])
- # 切片
- print(tuple1[::-1])
- # len
- print(len(tuple1))
- print(max(tuple6),min(tuple6))
- # del
- del tuple5
- # print(tuple5)
- # +
- print(tuple1 + tuple6)
- # *
- print(tuple1 * 3)
- # in
- print(1 in tuple1)
- # 元组的常用方法
- a = tuple1.count('hello') # 计数
- print(a)
- print(tuple1)
- a = tuple1.index(2)
- print(a)
- # 元组的遍历
- print('-' * 30)
- for i in tuple1:
- print(i)
- for index,value in enumerate(tuple1):
- print(index, value)
- for i in range(len(tuple1)):
- print(i, tuple1[i])
复制代码
range
界说
- 体系提供的内建函数 range(start,end,[step=1]),天生一个等差序列[start,end]
- 注意序列属于不可变序列,不支持元素修改,不支持 + 和 * 操作
- range一样平常用于for-in循环遍历
- 原型:range([start,] stop [,step])
- 功能:天生列表
- 参数:
- start:表示列表起始值,包罗,默认为0
- stop:表示列表竣事值,但是不包罗
- step:步长,默认为1
示例代码
- # range(start, end, step)
- print(list(range(10))) # end
- print(list(range(2,10))) # start, end
- print(list(range(2,10,3))) # start, end, step
- for i in range(3):
- print('hello')
- # 高斯求和
- total = 0
- for i in range(1000, 10001, 2):
- total += i
- print(total)
- # 水仙花数:三位数,每一位数字的立方和 = 三位数本身
- # 123 1^3+2^3+3^3 = 123
- for i in range(100, 1000):
- a = i % 10 # 个位
- b = i % 100 // 10 # 十位 i // 10 % 10
- c = i // 100 # 百位
- if a ** 3 + b ** 3 + c ** 3 == i:
- print(i)
-
- # 使用字符串索引的方式
- for i in range(100, 1000):
- t = str(i)
- a = int(t[2])
- b = int(t[1])
- c = int(t[0])
- if a ** 3 + b ** 3 + c ** 3 == i:
- print(i)
复制代码
字符串
界说
- 字符串就是一串字符,是编程语言中表示文本的数据类型
- 在Python中可以使用一对双引号或者一对单引号界说一个字符串
- 字符串是以单引号或者双引号括起来的任意文本,也可以是以三引号引起来的任意文本
示例代码
- s1 = 'hello world'
- # 序列的通用操作
- print(s1 + 'mia')
- print(s1 * 3)
- print(len(s1))
- print(max(s1),min(s1))
- print(ord('w'))
- print(ord(' '))
- # del s1
- print('s' in s1)
- print('abcd' < 'abce')
- print('cd' < 'abcd')
- # 字符串的遍历
- for i in s1:
- print(i)
- for index,value in enumerate(s1):
- print(index,value)
- for i in range(len(s1)):
- print(i,s1[i])
- # 类型转换
- print(str(12),type(str(12))) # int-->str
- print(str([1,2,3,4]),type(str([1,2,3,4]))) # list-->str
- print(str((1,)),type(str((1,)))) # tuple-->str
- # 常用方法
- print(s1.islower())
- print(s1.isupper())
- print(s1.isdigit())
- print(s1.count('o'))
- print(s1.strip()) # 去掉空格
- print(s1.split(' ')) # 分隔字符串
- print(s1.find('o',5,8))
- print('#'.join(['111','222','333'])) # 连接
- # 字符串的统计
- s = input('请输入一篇文章:')
- # 字母的个数、数字的个数、符号的个数
- a, b, c = 0, 0, 0
- for i in s:
- if i.isdigit():
- b += 1
- elif i.isalpha():
- a += 1
- else:
- c += 1
- print(a, b, c)
复制代码
字典
界说
- dictionary(字典)是除列表以外 python之中最机动的数据类型
- 字典同样可以用来存储多个数据
- 通常用于存储描述一个物体的相干信息
- 和列表的区别:列表是有序的对象聚集;字典是无序的对象聚集
- 字典用{}界说
- 字典使用键值对存储数据,键值对之间使用==,==分隔
- 键key是索引
- 值value是数据
- 键和值之间使用==:==分隔
- 键必须是唯一的
- 值可以取任何数据类型,但键只能使用字符串、数组或元组
示例代码
- # 字典的创建
- d = {
- 'name':'mia', # 键值对
- 'gender':'female',
- 'name':'jack', # 键重复的话,会覆盖掉之前的值
- }
- print(d)
- print(type(d))
- d = {}
- print(d)
- print(type(d))
- d = dict()
- print(d,type(d))
- d = {
- 'name':'mia', # 键值对
- 'gender':'female',
- }
- d['height'] = 170
- print(d)
- # 获取键值对
- print(d['name'])
- # 修改键值对
- d['gender'] = 'male'
- print(d)
- # del(d)
- # print(d)
- # in
- print('age' in d)
- # 字典的遍历
- for i in d:
- print(i,d[i])
- print('-' * 30)
- for k, v in d.items():
- print(k,v)
- for k in d.keys():
- print(k)
- for v in d.values():
- print(v)
- # 字典的常用方法
- d.pop('gender')
- print(d)
- a = d.copy()
- print('a的键值对', a)
- print(d.get('name'))
- d.popitem() # 从后往前删一个,入栈push出栈pop
- print('pop',d)
- d.update({'age':18})
- print(d)
- d.clear()
- print(d)
复制代码
聚集
界说
- 不允许有重复元素,假如添加重复元素,则会自动过滤,可以进行交集、并集的运算
- 是一种无序且无重复元素的数据布局
- 与dict类似,是一组key的聚集(不存储value)
示例代码
- # 集合的创建
- s = set()
- print(s,type(s))
- s = {1,2,3,4,1,2}
- print(s,type(s))
- s = set([1,2,3,1]) # list-->set
- print(s)
- s = set((1,2,3)) # tuple-->set
- print(s)
- s = set('123') # str-->set
- print(s)
- s = set({1:'a','a':2}) # dict-->set:默认取key
- print(s)
- # in
- print(1 in s)
- print(2 in s)
- print(len(s))
- print(max({1,2,3}),min({1,2,3}))
- # del s
- # print(s)
- # 集合不支持索引!!
- # 集合的遍历
- print('-' * 30)
- for i in s:
- print(i)
- # 常用方法
- s.remove('a')
- print(s)
- s.update({2,3,4,5,6,7,6,5})
- print(s)
- s.add(9)
- print(s)
- s.add(1)
- print(s)
- # 交集 并集
- s2 = {5,6,7,8,9}
- print(s & s2)
- print(s | s2)
- # 列表去重
- score = [80,70,60,80,70,60,40]
- s = set(score)
- print(s)
- d = {}
- # 统计各个分数都有几个学生
- for i in s:
- t = score.count(i)
- print('得分为%d的学生有%d个人' %(i,t))
- d[i] = t
- print(d)
- for k,v in d.items():
- print('得分为%d的学生有%d个人' % (k, v))
复制代码
可变类型&不可变类型
不可变数据类型在创建后,其值就不能被改变。Python中的以下数据类型是不可变的:
- 数字(例如:int、float、complex)
- 字符串(例如:str,不支持使用索引的方式进行修改)
- 元组(例如:tuple)
- 布尔类型(例如:bool)
可变类型
可变数据类型的值可以在创建后被改变。Python中以下数据类型的可变的:
- 列表(例如:list)
- 字典(例如:dict)
- 聚集(例如:set)
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |