Python基础语法03

Python基础语法03:


1.4 复合类型:

Python中支持的复合类型可以将多种不同的值组合起来

常见的复合类型有:
1.列表
2.元组
3.字典


1.4.1列表类型:

列表是用方括号标注、逗号分隔的一组值,可以包含不同类型的元素的一种数据容器:

  • 列表内的数据有先后顺序关系
  • 列表是可变的容器
x=[]           #创建了一个空列表
x=[1,2,3,4,5]  #在其他语言中这个叫做数组,在python中叫做列表 python中数组有其他定义

列表可以放任何数据

#列表里面还可以放列表
x=[[10,20,30],"hello",10,]

1.4.1.1列表的创建:

字面量(直接创建一个列表)
例如:

L = []     # 创建一个空的列表
L = ['成都', '昆明', '贵阳', '重庆']  # 创建一个含有4个字符串的列表
L = [1, 'Two', 3.14, True, False, None]
L = [1, 2, [3.1, 3.2], 4]   #  含有四个元素的列表,第三个元素是列表
L2 = [
	['姓名','语文成绩','数学成绩'],
	['小明', 90, 100],
	['小王', 59, 26]
]

构造函数创建列表
list( )函数可以传入一个可迭代对象,用于创建列表中的数据

x=list("hello")
x=list([10,20,30])
x=list(range(1,10))

1.4.1.2 列表的运算

列表的运算与字符串的运算类似

x=[1,2,3,4,5]
y=[6,7,8,9,10]
#将两个列表的数据拼接起来
print(x+y) 
#将列表重复3次,不能乘浮点数
print(x*3) 
输出:
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
[1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5]

x=[1,2]
y=[1,2]
#判断两个列表每一个位置对应元素是否相等
print(x==y)
#判断两个列表每一个位置对应元素是否不相等
print(x!=y)
#判断某个元素是否在列表中
print(1 in x)
输出:
True
False
True

1.4.1.3 列表的访问

1.4.1.3.1 索引
L = [1, 2, 3, 4, 5, 6]
print(L[0])    # 1
print(L[-1])   # 6

列表的访问与字符串一样都是通过索引进行访问
可以正向访问(从下标为0的元素开始从左往右访问)
可以反向访问(从下标为-1的元素开始从右向左访问)


1.4.1.3.2 切片
列表[(开始索引b):(终止索引e)(: (步长s))]
list = ['enjoy', 'your', "life", "good", "time"] 
# 读取第二位
print (list[1])
# 从第二位开始(包含)截取到倒数第二位(不包含)
print (list[1:-2])
# 从下标2开始(包含2)到最后一个
print (list[2:])
# 从下标0开始到下标3结束(左闭右开)
print (list[:3])
a=[[0,1,2,3],
   [0,1,2,3],
   [0,1,2,3],
   [0,1,2,3]]
x=a[:][3]
print(x) 
输出:
your
['your', 'life']
['life', 'good', 'time']
['enjoy', 'your', 'life']
[0, 1, 2, 3]


1.4.1.4 列表操作

x=[10,20,30]
#append()函数可以往列表的末尾添加元素,返回值为None
re=x.append(40) 
print(re)

x=[1,2,3,4]
#extend()函数可以往列表末尾添加多个元素
#返回值为None,不会改变原列表的位置
re=x.extend([1,40]) 

#id()函数
#id()函数可以查看变量的内存地址
print(id(x))

#insert()函数
#insert()函数可以往列表指定位置添加元素
x=[1,2,3,4]
re=x.insert(2,40)
print(x)

#修改列表的数据
x=[1,2,3,4]
x[2]=40
print(x)

#存取修改不能越界
#切片可以越界,相当于越界的未保存值
#切片赋值必须赋值可迭代对象,否则会报错
x[1:3]=[666,777,88,9] #用等号后面的容器数据 来替代列表原位置上的值

#删除列表数据
x=[1,2,3,4]
re=x.remove(2)
print(x)

#pop() 删除指定位置的值
x=[1,2,3,4]
x.pop(2)
print(x)

#clear()
#将列表清空
x.clear()

#最常用 简便方法
x=[1,2,3,4]
x=[]
x=[1,2,3,4]
print(x)#内存会释放掉原来的列表

#del
#删除x变量,使用del删除之后如果再调用变量x会报错
x=[1,2,3,4]
del x
print(x)
#删除指定下标的值 
x=[1,2,3,4]
del x[2]      
print(x)

#获取列表长度
x=[1,2,3,4]
n=len(x)

#获取列表最大值和最小值
m=max(x)
print(m)
m2=min(x)
print(m2)

#获取列表中某个值的索引
print(x.index(3))
target=x.index(max(x)) #可以用来获取某个列表中最大值的索引

1.4.2 元组

tuple

元组用来储存有序数据,多个值用逗号隔开,元组中的值可以重复,但是元组中的值不能修改。

  • 元组使用小括号 ( ),日常使用时可以省略;
  • 元组的元素多为不可变的,通过解包或索引访问;
  • 列表的元素多为可变的,可迭代访问;

1.4.2.1 元组的创建

创建元组的字面值
用小括号() 括起来,单个元素括起来后加逗号来区分单个元素还是元组

x=() #空元组
x=(1,) #元组只有一个元素的时候,需要加逗号,否则会报错。
x=(1,2,3)
x=10,20,30 #常见于函数返回数据的时候,可以省略括号。

创建元组的函数

x=tuple([1,2,3])
x=tuple("hello")

1.4.2.2 元组的操作

元组没有常见的删除方法
只能用关键字del删除整个元组

#元组的操作
x=(1,2,3,4,5,6,7,8,9,10)
print (x)
del tup
print (tup)		#name 'tup' is not defined

元组不支持修改内部的元素
解构赋值: 按照等号左边的结构来分配元组或者列表的元素。
解构赋值左右的结构必须一样,一一对应

x1,x2=(1,2) #同时声明了两个变量 X=t[0] x2=t[1]
x1,x2=[100,200]

元组可以像列表一样通过下标切片等方式来进行查看

tup1 = ('python', 'love', 100, 200)
tup2 = (1, 2, 3, 4, 5, 6, 7 )
print (tup1[0])#python
print (tup2[1:5])#(2, 3, 4, 5)
print (tup2[:4])#(1, 2, 3, 4)
print (tup2[2:])#(3, 4, 5, 6, 7)
1.4.2.3 元组运算

元组中的元素值是不允许修改的,但可以对元组进行连接组合

tup1 = (12, 34.56)
tup2 = ('abc', 'efg') 
# 创建一个新的元组
tup3 = tup1 + tup2
print (tup3)

t = (1, 2, 3) + (4, 5, 6)
t += (7, 8, 9)  # 等同于 t = t + (7, 8, 9)
t = t * 2
t *= 2
5 in t
1.4.2.4 元组不可变

不可变指的是变量指向的内存中的内容不可变,但是变量的指向是可以改变的

tup = (1, 2, 3, 4, 5, 6, 7)
tup[1] = 100
print(tup)
#报错'tuple' object does not support item assignment

变量是可以重新赋值的

tup1 = (12, 34.56) 
tup1 = (12, 100)
tup1

元组常用API

x=(1,2,3,4,5,6,7,8,9,10)
#返回元组中元素个数。
print(len(x)) 
#返回元组中元素最大值。
print(max(x))
#返回元组中元素最小值。
print(min(x))

1.4.3 字典

字典 是可以修改数据的 一种保存数据的容器
列表的元素保存在对于的下标处 字典的元素没有按顺序的下标 字典的下标是自己创建的

1.4.3.1 字典的创建

#创建空字典
d1={}
#创建字典的字面量
d2={
    "name":"张三",
    "age":18,
    "sex":"男"
}
print(d2)
d2["name"]="李四"

字典的key必须是唯一的,如果key重复,后面的会覆盖前面的。字典的key必须是不可变的,比如字符串,元组,但是字典的value可以是任何类型。
字典的value也可以是字典

d2={
    "name":"张三",
    "age":18,
    "sex":"男",
    "address":{
        "province":"北京",
        "city":"北京",
        "street":"北京"
    }
}

x="hello"
y=(10,20)
d1={x:10, y:20}


#用dic创建字典
X=dict()
x=dict([(1,20),(2,30),(3,40)])

1.4.3.2 字典操作

增、删、改、查

1.4.3.2.1 增加或修改

添加和修改字典的元素

  • 语法

    字典[键key] = 表达式
    

    键不存在, 就添加

    键存在, 会覆盖掉之前的值

  • 示例

    d = {}
    d['name'] = 'tarena'  # 添加键值对
    d['age'] = 18         # d = {'name': 'tarena', 'age': 18}
    d['age'] = 19         # 改变键对应的值
    
1.4.3.2.2 访问值
  • 字典的键索引

通过字典的键来进行访问

  • 示例

    d = {'one': 1, 'two': 2}
    print(d['two'])
    
  • 不能访问不存在的键

    mydic = {'Name': 'ye', 'Age': 46, 'Class': 'First'} 
    print (mydic['drake']) # KeyError: 'drake'
    

1.4.3.2.3 in和not in

in用于判断一个键是否存在于字典中,存在返回True, 否则返回False

  • 示例

    d = dict(a=1, b=2)		# d = {'a': 1, 'b': 2}
    print('a' in d)			# True	
    print(1 in d)			# False
    print('hello' not in d)	# True
    

1.4.3.2.4 删除元素

可以只删除元素,也可以直接用del删除整个字典

  • 语法
del 字典[]
  • 示例
dic = {'Name': 'rose', 'Age': 7, 'Class': 'First'}
 
del dic['Name'] # 删除键 'Name'
dic.clear()     # 清空字典
 
print (dic['Age'])
print (dic['School'])

del mydic         # 删除字典,无法再访问

1.4.3.3 字典特性

  • 字典的键具有唯一性,不允许同一个键出现两次,否则后一个覆盖前一个

    mydic = {'Name': 'jack', 'Age': 27, 'Name': 'karen'}
    print (mydic['Name'])
    
  • 键必须不可变,可以用数字、字符串或元组,列表不能作为键

    dic1 = {11:"a",22:"b"}
    dic2 = {"name":"jack","age":20}
    dic3 = {['Name']: "jack", 'Age': 20}
    print(mydic3[['Name']])	#报错unhashable type: 'list'
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值