0421 Python学习总结(4)

这篇博客总结了Python中的加法和乘法运算,如列表的合并与重复,以及`in`和`not in`的使用。接着讲解了字典的概念和操作,包括查找、增加、修改和删除键值对。最后讨论了字符串和元组,强调字符串的不可变性以及元组作为不可变列表的角色。

0421 python学习总结

1.加法和乘法运算

1)列表1 + 列表2 - 将两个列表合并产生一个新的元素
list1 = [10,20,30]
list2 = [100,200]
print(list1 + list2)         #[10,20,30,100,200]
2)列表 * N - 将列表中的元素重复N次产生一个新的列表
print(list1 * 3)		#[10,20,30,10,20,30,10,20,30]

2. in 和 not in

数据 in 列表 - 判断列表中是否存在指定数据对应的元素

数据 not in 列表 - 判断列表中是否不存在指定数据对应的元素

print(10 in list1)
print(11 in lise10)
print([10,20] in list1)

练习:已知一个列表保存了多个学生的姓名,要求去掉列表中重复的名字
names = [‘小明’, ‘张三’, ‘李四’, ‘张三’, ‘张三’, ‘小明’, ‘王五’, ‘王五’]

names = ['小明', '张三', '李四', '张三', '张三', '小明', '王五', '王五'] 
name = []
for x in names:
    if x not in name:
        name.append(x)
print(name)
    

3.相关函数

1)max(列表)、min(列表)
list1 = [10,23,45,67,91]
print(max(list1),min(list1))
2)

sorted(列表) - 将列表中的元素从小到大排序,产生一个新的列表

sorted(列表,reverse=True) - 将元素中的列表从大到小排序,产生一个新的列表

list1 = [10,230,45,670,91]
new_list1 = sorted(list1)
print(new_list1)        # [10, 45, 91, 230, 670]

list1 = [10, 230, 45, 670, 91]
new_list1 = sorted(list1, reverse=True)
print(new_list1)
3)len(列表) - 获取列表长度(列表中元素的个数)
print(len(list1))
4)list(数据) - 将指定的数据转换成列表(这的数据必须是序列)

只要是序列就能转换成列表,转换成列表的时候,序列中的元素就是列表中的元素

print(list('abc'))		#[‘a’,'b','c']
print(list(range(5)))		#[0,1,2,3,4]

二.字典

1.字典存在的价值

需求:定义一个变量保存一个学生的信息

stu1 = ['小明',25,'男',170,70,80]
print(stu[0])
print(stu[-1])

stu2 = {'name':'小明','age':25,'身高':170,'体重'70,'成绩':'80'}
print(stu2['name'])
print(stu2['成绩'])

结论:需要同时保存多个意义不同的数据就使用字典;需要同时保存多个意义相同的数据就使用列表

2.什么是字典(dict)

容器;将{}作为容器的标志,里面多个键值对用逗号隔开(一个键值对就是一个元素):{键1:值1,键2:值2,键3:值3,…}

字典是可变的(支持增删改);字典无序(顺序不影响结果;不支持下标操作)

键的要求:a.不可变类型的数据才能作为字典的键(数字、字符串、布尔、空值、元组),一般使用字符串作为字典键。

​ b.键唯一。

值的要求:没有要求。

空字典

dict1 = { }

字典是无序的

print('a':10,'b':20 == 'b':20,'a':10)		#True

字典的键必须是不可变类型的数据

dict2 = {1: 10, 'a': 20, True: 30, None: 40, (10, 20): 50}
print(dict2)

键是唯一的

dict4 = {'a': 10, 'b': 20, 'c': 30}
print(dict4)        # {'a': 10, 'b': 20, 'c': 30}

dict5 = {'a': 10, 'b': 20, 'c': 30, 'a': 50}
print(dict5)        # {'a': 50, 'b': 20, 'c': 30}
#后来者居上

三.字典的基本操作

注意:字典保存数据真正想要保存的是值,键是用来对值进行区分和说明

1.查 - 获取字典的值

1)查单个 - 获取一个值

a,字典[键] - 获取字典中指定键对应值,如果键不存在就会报错

b.get(键) - 获取字典中指定键对应值,如果键不存在不会报错,并且会返回None

c.字典.get(键,默认值) - 获取字典中指定键对应值,如果键不存在不会报错,并且返回默认值

dog = {'name':'朵拉','age':2,'breed':'小柴','color':'黄色','gender':'母'}

print(dog['age'])
print(dog['gender'])
# print(dog['weight'])

print(dog.get('age'))
print(dog.get('gender'))
print(dog.get('weight'))        # None

print(dog.get('age', 0))        # 3
print(dog.get('gender', '公'))   # '母'
print(dog.get('weight', 10))     # 10
students = [
    {'name': 'stu1', 'age': 18, 'score': 90},
    {'name': 'stu2', 'age': 22},
    {'name': 'stu3', 'age': 25, 'score': 78},
    {'name': 'stu4', 'age': 30, 'score': 88},
    {'name': 'stu5', 'age': 19},
    {'name': 'stu6', 'age': 27, 'score': 72}
]
sum1 = 0
for x in students:
    sum1 += x.get('score', 0)
print('总分:', sum1)

生活中的字典:定义一个变量保存一个班级信息

class1 = {
    'name': 'python2302',
    'address': '11教',
    'teacher': {'name': '余婷', 'age': 18, 'gender': '女', 'qq': '726550822'},
    'header_teacher': {'name': '舒玲', 'age': 18, 'gender': '女', 'tel': '110'},
    'students': [
        {'name': 'stu1', 'age': 19, 'gender': '男', 'link_man': {'name': '张三', 'tel': '120'}},
        {'name': 'stu2', 'age': 16, 'gender': '女', 'link_man': {'name': '李四', 'tel': '119'}},
        {'name': 'stu3', 'age': 22, 'gender': '女', 'link_man': {'name': '老王', 'tel': '234'}},
        {'name': 'stu4', 'age': 17, 'gender': '男', 'link_man': {'name': '赵六', 'tel': '2112'}},
        {'name': 'stu5', 'age': 29, 'gender': '男', 'link_man': {'name': '邓七', 'tel': '5482'}},
        {'name': 'stu6', 'age': 25, 'gender': '女', 'link_man': {'name': '王八', 'tel': '9223'}}
    ]
}

# 1)打印班级名称
print(class1['name'])

# 2)打印讲师的名字和qq
teacher = class1['teacher']
print(teacher['name'], teacher['qq'])

# 3)打印班主任的电话
print(class1['header_teacher']['tel'])

# 4)打印所有学生的名字
students = class1['students']
for stu in students:
    print(stu['name'])

# 5)打印所有未成年学生的名字和性别
for stu in students:
    if stu['age'] < 18:
        print(stu['name'], stu['gender'])

for stu in students:
    print(stu['link_man']['name'])

# 7)计算所有男生的平均年龄
total_age = count = 0
for stu in students:
    if stu['gender'] == '男':
        total_age += stu['age']
        count += 1
print(int(total_age / count))

2)遍历 - 一个一个的获取所有的值

for 变量 in 字典:

​ 循环体(变量依次取到的是字典的键)

dog = {‘name’:‘朵拉’,‘age’:2,‘breed’:‘小柴’,‘color’:‘黄色’,‘gender’:‘母’}

for x in dog:

​ print(x,dog[x])

2.增

1)字典[键] = 值 - 如果键不存在就在字典中添加键值对

2)字典.setdefault(键,值) - 在字典中添加指定键值对(键如果存在不会修改对应的值)

3.改

字典[键] = 值 - 如果键存在就修改指定键对应的值

4.删 - 删除键值对

1)del 字典[键] - 删除字典中指定键对应的键值对
dog = {'name':'朵拉','age':2,'breed':'小柴','color':'黄色','gender':'母'}
print(dog)

2)字典.pop(键) - 取走字典中指定键对应的值
dog = {'name':'朵拉','age':2,'breed':'小柴','color':'黄色','gender':'母'}
print(dog)
dog.pop('color')
#放回去只放值
result = dog.pop('color')
print(dog,result)

四.字符串和元组

1.字符串(str)

容器:将’'或者""作为容器的标志,里面的每一个符合就是字符串中的每个元素。例如:‘abc’、‘10,20,30’

字符串是不可变得;字符串是有序的(支持下标操作)

元素:字符串的元素又叫字符,分为普通字符和转义字符两种

\n - 换行

\t - 水平制表符(tab键)

print('abc')   #普通字符
print('\mabc')   #普通字符
print('\nabc')		#abc (转义字符)
print('abc\n123')

2.字符串查操作

字符串获取元素的方法和列表一样

msg = 'hello world'
print(mag[0])
print(mag[-1])

for x in msg:
    print(x)

str1 = 'abc'
str2 = '123'
print(str1 + str2)      # 'abc123'
print(str1 * 3)     # 'abcabcabc'

print(len(str1))

2.元组

元组就是不可变的列表:(元素1,元素2,元素3,…)

t1 = (10, 20, 30, 40, 50)
print(t1[0])
print(t1[-2])

t2 = (100, 200)
print(t1 + t2)      # (10, 20, 30, 40, 50, 100, 200)
print(t2 * 3)       # (100, 200, 100, 200, 100, 200)

print(10 in t1)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值