python_元组和字典

什么是元组

python的元组和列表很相似,不同之处在于元组的元素不能被修改,而列表的元素可以被修改,也可以进行分片和连接操作。元组使用小括号创建,列表使用方括号创建。

元组的创建:

代码:

list02=('111','222','333')
print(list02)

操作元组

删除元组
代码:

tuple1=('abcd',123,3.33,'hello')
print("删除之前的元祖:",tuple1)
del tuple1

##print(“删除之后元祖:”,tuple1)
是删除了整个元组,如果加上##print(“删除之后元祖:”,tuple1)会报错。
元组截取用的是方括号students[0:3 ]
元组的元素虽然不能够被改变,但是元组也是一个序列,也可以通过索引去访问和截取元组中指定位置的元素
代码如下:

strdents=('abcd',123,3.33,'hello')
print("截取的元素",strdents[0:3])

输出结果:
截取的元素 (‘abcd’, 123, 3.33)

多维元祖

多维元祖就是元祖中的元祖,元祖中的元素可以是一个新的元祖
在这里插入图片描述
代码如下:

strdents=('abcd',(18,78,19),123,3.33,'hello')
print("截取的元素",strdents[0:3])

输出结果:
截取的元素 (‘abcd’, (18, 78, 19), 123)

元组函数

- 计算元祖中元素的个数len()函数
代码:

students=('abcd',(18,78,19),123,3.33,'hello')
num=len(students)
print(num)

输出结果:
5

  • 返回列表元素中的最大值max(元组)
  • 代码如下:
students=(18,78,19,123,3.33)
num=max(students)
print(num)

输出结果:123

  • 将列表转换成元组tuple1=tuple(list01)
list01=['jack','jenny','toy','jack']
print(list01)
tuple1=tuple(list01)
print(tuple1)

输出结果:

['jack', 'jenny', 'toy', 'jack']
('jack', 'jenny', 'toy', 'jack')

**

什么是字典{}—(相当于C++上的结构体)

**
字典是另外一种可变容器类型,且可以存储任意类型对象。列表元素进行修改的话,通过索引进行修改,如果当前元素的顺序发生改变,此时还需要修改索引才能成功完成元素的修改。有没有办法,既能存储多个数据,又能很方便准确的定位元素呢?答:字典

## 字典的创建:

students={'name':'Tome','age':18,'sex':'男'}
print(students)

输出结果:
{‘name’: ‘Tome’, ‘age’: 18, ‘sex’: ‘男’}

## 访问字典

students={'name':'Tome','age':18,'sex':'男'}
print(students['name'])

输出结果:
Tome

## 修改字典元素:

students={'name':'Tome','age':18,'sex':'男'}
students['name']=‘jack’

添加元素
动态的向字典中添加元素的时候,只要添加的键在字典中不存在,就会新增这个元素。在以下字典中添加一个住址信息
代码如下:

students={'name':'Tome','age':18,'sex':'男'}
print(students['name'])
students['address']='北京'
print(students)

输出结果:
Tome
{‘name’: ‘Tome’, ‘age’: 18, ‘sex’: ‘男’, ‘address’: ‘北京’}
删除字典元素
使用del语句删除元素:del既可以删除指定的字典元素(列表也可以指定),也可以删除整个字典,如果不指定key,代表删除整个字典。语法如下:

students={'name':'Tome','age':18,'sex':'男'}
print(students['name'])
students['address']='北京'
print(students)
del students['address']
print(students)

输出结果:
Tome
{‘name’: ‘Tome’, ‘age’: 18, ‘sex’: ‘男’, ‘address’: ‘北京’}
{‘name’: ‘Tome’, ‘age’: 18, ‘sex’: ‘男’}
使用clear()方法清空整个字典,最后剩一个空字典。而用del会删掉的字典程序就不存在了。

字典函数和方法

len函数:计算字典中元素的个数:
代码:

students={'name':'Tome','age':18,'sex':'男'}
print(len(students))

输出结果:3
返回输入变量的数据类型,如果变量是字典就返回<class ‘dict’>
返回变量的数据类型:
代码如下:

students={'name':'Tome','age':18,'sex':'男'}
str1=type(students)
print(str1)
print(students)

key in dict如果键在字典dict里返回true,否则返回false
代码:

students={'name':'Tome','age':18,'sex':'男'}
if 'name' in students:
    print("在字典中")
else:
    print('不在字典中')

输出结果:
以列表返回一个字典所有的键字典.keys()
代码:

students={'name':'Tome','age':18,'sex':'男'}
print(students.keys())

输出结果:
dict_keys([‘name’, ‘age’, ‘sex’])

浅拷贝

代码:

a=[1,2,3]
b=a
print(a)
print(b)

输出结果a和b一样,a和b指向了同一块地址,是浅拷贝。

**

拷贝原始对象,当原始对象改变时,现对象不变。
代码:

a=[1,2,3]
b=a[:]
print(id(a))
print(id(b))

输出结果:
55129552
55130712
两个内存不同,说明这是深拷贝。
如果是列表的嵌套,那么开辟空间的时候,原始的子列表,不开辟新的空间。
在这里插入图片描述

深拷贝—深拷贝是新开辟的空间

代码:

import copy
a=[1,2,3]
b=[4,5,6]
c=[a,b]
print(c)
list01=copy.deepcopy(c)
print(list01)
a[0]=12
print(c)
print(list01)

输出结果“:[[1, 2, 3], [4, 5, 6]]
[[1, 2, 3], [4, 5, 6]]
[[12, 2, 3], [4, 5, 6]]
[[1, 2, 3], [4, 5, 6]]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值