浅谈python零基础教程总结30天--day7

python第七天总结:

一、列表的值[a, b, c],类型是对象:

对象类型: 列表、字典、集合、元素、通过类创建的对象

变量在存储对象数据的时候,存的对象保存在内存中的地址。

如果用存对象的变量给另外一个变量赋值,赋的是地址

list1 = [1, 2, 3, 4]

注意:如果变量里存的对象,要注意赋值的时候,

如果不想要两个变量互相影响,就不要直接赋值而是拷贝对象产生新的对象然后赋值

list2 = list1[:]
list3 = list1.copy()
list3[1] = 100
list2[0] = 10
print(list3)
print(list2)
print(list1)

二、元祖(tuple)

元祖(tuple)就是不可变的列表

列表中除了增加、修改和删除相关的操作,其他都适用于元祖

什么时候用? 就是存到容器中的数据不能被修改的时候使用

例如:星期几对应的值

1.声明元祖

tuple1 = (1, 2, 3, 4, ‘aa’, True)
print(tuple1)

2. 查

print(tuple1[0])
print(tuple1[-1])

print(tuple1[:3])

for item in tuple1:
print(item)

for index in range(len(tuple1)):
print(tuple1[index])

3. + , *

print((1, 2, 3) + (‘a’, ‘b’, ‘c’))
print((1, ‘a’) * 3)

4. in , not in

a = 10
print(a in (10, 2, 9, 9))
print(a not in (10, 2, 9, 9))

不适用于修改,添加!

tuple2 = (1, 2, 5, 3, 7)

tuple2[0] = 10 # TypeError: ‘tuple’ object does not support item assignment

del tuple2[1] # TypeError: ‘tuple’ object doesn’t support item deletion

练习,输入1-7的数字,对应输入是星期几。例如:输入1,就输出”星期一”。输入7就输出’星期日’

weeks = (‘星期一’, ‘星期二’, ‘星期三’, ‘星期四’, ‘星期五’, ‘星期六’, ‘星期日’)
while True:
input_value = int(input(‘请输入1~7:’))
print(weeks[input_value-1])

三、字典:

字典是一个容器类的数据类型,以键值对(key:value)的形式来存储数据

键值对:键:值 的形式存在。

值:可以是任何类型的数据;键:理论上只能是不可变的数据类型的数据,实际开发中,一般用字符串作为key

字典是可变的(说明可以增、删、改、查),但是是无序的(不能使用下标来访问元素)

1.定义/声明一个字典(dict)

声明了一个字典对象,有两个键值对

dict1 = {‘name’: ‘张强’, ‘age’: 18}
dict2 = {‘score’: 100, 10: ‘aaa’, (1, 3):[10, 23]}
print(dict2)

注意:可变的数据不能作为字典的key

dict3 = {[10, 12]: ‘abc’} # TypeError

print(dict3)

声明一个字典,存小明的姓名、年龄、成绩、颜值

xiaoming = {‘name’: ‘小明’, ‘age’: 20, ‘score’: 100, ‘face’: 90}

2. 查

a.获取单个元素的值

通过key去获取值: 字典名[key值]

print(xiaoming[‘age’])
print(xiaoming[‘face’])

注意: 使用字典名[key]的形式去获取字典中元素的值的时候,key值必须是在字典中存在的。否则报KeyError异常

print(xiaoming[‘abc’]) # KeyError: ‘abc’

通过get方法获取值: 字典名.get(key值)

获取字典中,不确定key对应键值对是否存在的时候,是使用get去获取其对应的值

print(xiaoming.get(‘name’))

None:python中的一个特殊值,表示没有

print(xiaoming.get(‘abc’)) # 结果是None

获取字典中的’grade’对应的值,如果grade不存在就打印’不存在’,否则直接打印’grade’对应的值

value = xiaoming.get(‘grade’)
if value == None:
print(‘不存在’)
else:
print(value)

b. 遍历字典

直接遍历字典拿到的是字典中所有的key值

dict3 = {‘a’: 1, ‘b’: 2, ‘c’: 3}

在开发中使用这种方法去遍历字典

for key in dict3:
print(key, dict3[key])

2.修改

通过key去拿到对应的元素,重新赋值

dict3 = {‘a’: 1, ‘b’: 2, ‘c’: 3}
dict3[‘a’] = 10
print(dict3)

练习:将上面的字典中所有的值变为原来的3倍

for key in dict3:
# dict3[key] = dict3[key] * 3 或者
dict3[key] *= 3
print(dict3)

4.增加

通过key取值,然后赋值(如果这个key不存在,就是添加键值对。如果key存在,就是修改这个key对应的值)

增加键值对:’d’:4

dict3[‘d’] = 4
print(dict3)

dict5 = {}
dict5[‘name’] = ‘张三’
dict5[‘color’] = ‘red’
dict5[‘color’] = ‘green’
print(dict5)

注意:字典里面的key是唯一的

dict6 = {‘a’: 1, ‘b’: 2, ‘a’: 10}
print(dict6) # {‘a’: 10, ‘b’: 2}

5.删除(删除的是键值对)

a. del语句

格式: del 字典[key]

dict1 = {‘a’: 10, ‘b’: 10.3, ‘c’: False, ‘d’: [1, 2, 3]}
del dict1[‘b’] # 删除’b’对应的键值对
print(dict1)

b. pop方法

格式: 字典.pop(key)

dict1 = {‘a’: 10, ‘b’: 10.3, ‘c’: False, ‘d’: [1, 2, 3]}
result = dict1.pop(‘a’) # 结果是被删除的键值对的值
print(dict1, result)

popitem方法: 随机删除(取出)一个元素

dict1 = {‘a’: 10, ‘b’: 10.3, ‘c’: False, ‘d’: [1, 2, 3], ‘aa’: 100}
dict1.popitem()
print(dict1)

练习: 将字典中,值为字符串的全部删除

dict1 = {‘a’: 10, ‘str’: ‘string’, ‘b’: 10.3, ‘c’: False, ‘d’: [1, 2, 3], ‘aa’: ‘haha’}
print(dict1)
for key in dict1.copy():
value = dict1[key] # 取键对应的值
if isinstance(value, str): # 判断值是否是字符串
dict1.pop(key) # 移除key对应的键值对
print(dict1)、

eys和values方法
dict1 = {‘a’: 1, ‘b’: 2, ‘c’: 3}
print(dict1)

字典.keys(): 获取字典中所有的key,结果是一个列表

print(dict1.keys())

字典.values(): 获取字典中所有的值, 结果是一个列表

print(dict1.values())

2. update

字典1.update(字典2) :用字典2中的元素去更新字典1中的元素(如果字典2中的键值对字典1没有,就直接添加。有的话就修改)

dict1.update({‘d’: 123, ‘e’: ‘hhh’, ‘a’: 100})
print(dict1)

3. in 和 not in

判断字典中是否有指定的key

print(‘a’ in dict1)
print(100 in dict1)

三、集合

集合是一种容器类型,并且是无序,元素的值是唯一的(不能重复),可变的

是通过{}去存储元素,多个元素之间用逗号隔开。

1.声明一个集合(set)

set1 = {1, 2, 3, 4, 1, 10} # 结果是:{1, 2, 3, 4, 10}
print(set1)

将其他的数据转换成集合,自带一个去重的功能

将字符串转换成集合

set2 = set(‘abcndjhaaks’)
print(set2)

将列表转换成集合

set3 = set([1, 2, 3, 4, 5, 6, 6])
print(set3)

将字典转换成集合(是将字典的key取出来作为集合的元素)

set4 = set({‘a’: 1, ‘b’: 2})
print(set4)

str1 = ‘abdaadhjkjjhks’

列表去重:

将字符串转换成列表

list1 = list(str1)

将列表转换成集合

set1 = set(list1)

将集合转换成列表

list1 = list(set1)
print(list1)

练习:将字符串str1 = ‘abdaadhjkjjhks’去重

set1 = set(str1) # 将字符串转换成集合
str1 = ”

遍历集合

for item in set1:
str1 += item
print(str1)

2.查

不能单独的获取某一个元素,只能通过遍历的方式去获取每一个元素

print(‘===============’)
set1 = set(‘12364789anc’)
for item in set1:
print(item)

3.增加

a.update

集合1.update(集合2): 将集合2中的元素添加到集合1中

set1 = set(‘123456’)
set2 = set(‘abcd1’)
set1.update(set2)
print(set1)

b.add

集合.add(元素) : 将指定的元素添加到指定的集合中

set1.add(‘aaa’)
print(set1)

4.删除

集合.remove(元素) :将指定的元素从集合中删除

set1.remove(‘1’)
print(set1)

python中的集合除了拥有作为容器相关的操作以外,还拥有数学中集合的相关操作

5.判断包含关系:>=、 <=

set1 = set(‘abczef’)
set2 = set(‘abcf’)

集合1 >= 集合2: 判断集合1中是否包含集合2,结果是布尔值

print(set1 >= set2)

集合1 <= 集合2:判断集合2中是否包含集合1

print(set1 <= set2)

6. |, &, -, ^

set1 = set(‘123456’)
set2 = set(‘456789’)

a. |: 求并集,在set1中或者在set2中的所有的元素

print(set1 | set2)

b. &: 求交集,求set1和set2的公共部分(即在set1中,又在set2中的元素)

print(set1 & set2)

c. -: 求差集,在set1中但是不在set2中的所有的元素

print(set1 - set2)

d.^: 获取set1和set2中,除了公共部分以外的所有的元素

print(set1 ^ set2)

7. copy

将set1中所有的元素取出来,创建一个新的集合

print(set1.copy())

什么时候用集合?

功能涉及到数学集合相关的操作的时候,就要想到用集合

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值