python_笔记_day8_字典_元组_列表

python_笔记_day8_字典_元组_列表_第1张图片
day8.png

一.昨日复习


1.格式字符串

%s ,%d , %.2f %c

name = '喜爱'
age = 18
message = name + '今年' +str(age) + '岁'
message = '%s今年%d岁 %c'% (name, age , 99)
print(message)

2.列表(list)

  • 可变(支持增删改)

2.1 列表中元素的增删改查

2.1.1 查:

  • 查单个元素
    列表[下标]
  • 查多个元素
    切片: 列表[开始下标:结束下标:步长] - 结果是列表
  • 遍历 - 结果是元素

2.1.2增:

  • 列表.append(元素) - 在列表的末尾增加
  • 列表.insert(下标,元素)

2.1.3删:

  • del 列表[下标]
  • 列表.remove(元素)
  • 列表.pop(下标)

2.1.4改:

  • 列表[下标] = 新值
list1 = [1, 2, 3]
list1.remove(1)
print(list1)

今日学习笔记

3.列表的相关运算

3.1数学运算: +, *

  • 列表2加列表2 - 将两个列表中的元素合并产生一个新的列表(原列表不改变)
  • 列表*N - 列表中的元素重复n次产生的列表
list1 = [1, 2, 3]
list2 = ['name', 'age']
new_list = list1 + list2
print(new_list, list1, list2)
print(list1*3)
list3 = [1] * 100
print(list3)

3.2 比较运算:==, !=

print([1, 2] == [2, 1])
list4 = [1, 2]
print(list4 == [1, 2])
  • >, <, >=, <= 只支持相同位置上元素类型相同的两个列表(了解就行)
print([1, '2', 3] > [100, 'z'])

4.内置函数

  • len(列表) - 求列表长度
  • sum(列表) - 要求列表中的元素必须是数字
  • max(列表) - 返回最大元素
  • min(列表) - 返回最小元素
  • list(列表) - 将指定数据转换成列表,所有的序列都可以转换成列表,比如:字符串,列表,字典集合,range

转换的时候是将序列中的元素作为列表的元素

print(list(str(123)))
print(list(range(22)))
nums = ['10', '23', '4']
str1 = ''.join(nums)
print(str1)

5.相关方法

5.1 列表.count(元素)

  • 获取指定元素在列表中出现的次数,结果是整数
print([1, 2, 3, 3, 2, 1].count(3))

5.2列表.extend(序列)

  • 将序列中的元素添加到列表中
list1 = []
list1.extend('abs')
list1.extend(range(3))
list1.extend(['qq', 'yy'])
list1.extend(['吕布'])
list1.extend('吕布')
print(list1)

5.3列表.index(元素)

  • 获取指定元素在列表中的下标,如果这个元素有多个只获取第一个
  • 如果元素不存在会报错
print([1, 2, 1123, 2, 3, 2, 1, 2].index(2))

5.4列表.reverse()

  • 将列表中的元素倒序,不会产生新列表
list2 = ['a', 'b', 's', 0, 1, 2, 'qq', 'yy', '吕布', '吕', '布']
list2.reverse()
print(list2)

5.4.1补充: 内置函数:reversed(序列)

  • 将序列中的元素倒序产生一个新的迭代器,原序列不会修改
print(list(reversed([1, 2, 2, 3])))

5.5列表.sort()

  • 对列表中的元素从小到大排序(列表中的元素类型一致并且支持比较运算
scores = [10, 100, 89, 20, 67, 34, 9]
scores.sort()
print(scores)

5.5.1列表.sort(reverse = True)

  • 对列表中的元素从大到小排序
scores = [10, 100, 89, 20, 67, 34, 9]
scores.sort(reverse=True)
print(scores)

5.6列表.copy()

  • 产生一个新的列表,列表中的元素和原列表一样,相当于: 列表[:]
list1 = [1, 2, 3]
list2 = list1
list3 = list1.copy()
print(list1, list2, list3)
list1.append(4)
print(list1, list2, list3)
print(id(list1), id(list2), id(list3))
'''
[1, 2, 3] [1, 2, 3] [1, 2, 3]
[1, 2, 3, 4] [1, 2, 3, 4] [1, 2, 3]
'''

5.6.1补充:变量

  • id(变量) - 查看变量中实质存储的地址
  • python所有变量实质都是直接保存的数据在内存中的地址

二.元组


1.什么是元组:

  • 元组就是不可变的列表,作为序列不可变(不支持增删改)但是有序(支持下标操作)
  • (元素1, 元素2, 元素3,....) ,元素的要求和列表一样

2.相关操作

2.1 查 - 获取元素

tuple1 = ('abc',1, 2, 3, 4)
print(tuple1[0], tuple1[-1])
print(tuple1[0:5:2])

2.2遍历

for item in tuple1:
    print(item)

2.3 数学运算, 比较运算

  • 数学运算, 比较运算, in/not in,len(), max(), min(), sum(), tuple() 和对应的列表操作一样的
print((1, 2, 3) + ('a', 'b', 'c'))
print((1, 2, 3) * 2)
print(10 in (1, 2, 3))
print(tuple('abcd'), tuple(range(4)), tuple(['abc', 100]))

3. 元组专有特点

3.1只有一个元素的元组,需要在这个元素后面加一个逗号

tu1 = (10)
print(type(tu1)) # 
tu1 = (10,)
print(type(tu1)) # 

3.2 元组的值可以去掉小括号

  • 直接将多个元素用','隔开,也表示一个元组
tu3 = 10,
tu2 = 10, 12, 23, 'aeae'
print(tu2, type(tu2))

3.3 变量的个数和元组中的元素的个数保持一致

  • 可以让变量依次取出元组中的元素
point = (100, 200)
x, y = point
print(x, y)

3.4 通过多个变量去获取元组元素的时候

  • 可以在某个变量前加好来将这个变量变成列表获取不带的变量取剩下的数据
  • 注意:带星号的变量只能有一个
student = ('小明', 40, 55, 34, 56, 67, 88, 99)
name, age, *scores, height = student
print(name, *scores)    # 小明 55 34 56 67 88

name, *x = student
print(name, x)  # 小明 [40, 55, 34, 56, 67, 88, 99]

*x, y, z = student
print(x, y)  # ['小明', 40, 55, 34, 56, 67] 88

三.字典

1.什么是字典(dict)

  • 字典是python内置的一个容器型数据类型,可变(支持增删改),无序(不支持下标操作)
  • {键1:值1,键2:值2,键3:值3} 键:值 -> 键值队
  • 键(key):a.不可变 b.唯一 (实际开发中建议用字符串)
  • 值(value): 和列表元素的要求一样

注意: 键值队是成对出现:字典存数据,实际存的是值,键是值得索引

dict1 = {'a': 100, 'b': 'abc', 'c': [1, 2]}
print(dict1)    # {'a': 100, 'b': 'abc', 'c': [1, 2]}

dict1 = {'a': 100, 'b': 'abc', 'a': [1, 2]}  # key 唯一
print(dict1)    # {'a': [1, 2], 'b': 'abc'}

2.什么时候用字典

  • 如果同时保存的多个数据是具有相同意义的数据,用列表
  • 如果同时保存的多个数据的意义不同,就用字典
preson1 = ['余婷', 18, 100, 155, 50]
preson2 = {'name': '余婷', 'age': 18, 'score': 100, 'height': 155, 'weight': 50}
print(preson1[0])
print(preson2['name'])

3.查 - 获取字典的值

3.1 获取key对应的值:

  • 字典[key} - 获取字典中指定key对应的值
dog1 = {'name': '大黄', 'type': '中华田园犬', 'color': 'yellow', 'age': 3}
print(dog1['type'])

3.1.1 获取key对应的值:

  • 字典.get(key) - 获取字典中指定对应key对应的值,如果key值不存在返回默认值None
  • 字典.get(key,默认值) -获取字典中指定对应key对应的值,如果key不存在返回指定的默认值

None是python中的关键字,表示数据为空或者没有意义

print(dog1.get('color'))    # yellow
print(dog1.get('gender'))   # None
print(dog1.get('gender', '公狗'))     # 公狗

3.2遍历

  • 直接遍历字典拿到的是key
print('====遍历1=====')
for x in dog1:
    print(x, dog1[x])
# print('====遍历2=====')  #不建议用
# for x in dog1.values():
#     print(x)
#
# print('====遍历3=====')  #不建议用
# for key in dog1.keys():
#     print(key, dog1[key])
#
# print('====遍历4=====')  #不建议用
# for key, value in dog1.items():
#     print(key, value)

4.增/修改 - 添加键值队

  • 字典.[key] = 值 当key不存在的时候就是添加键值队,当存在的时候,就是修改key对应的值
film = {'name': '流浪地球', '注意': '吴京', 'time': '2019-2-5' }
film['票房'] = '40亿'
print(film)
film['time'] = '2019-2-6'
print(film)
  • 字典.setdefault(key, value) -只能添加键值队,不能修改
film.setdefault('a',10)

5.删

5.1 del 字典[key] - 删除字典中key对应的键值队

film = {'name': '流浪地球', '注意': '吴京', 'time': '2019-2-5' }
del film['time']
print(film)

5.2 字典.pop(key)

  • 从字典中取出key对应的值,结果是key对应的值
name = film.pop('name')
print(name, film)

6.相关运算

  • 只支持比较运算符
print({'a': 10, 'b': 20} == {'b': 20, 'a': 10})     #True
  • in /not in
  • key in 字典 - 判断字典中是否存在某个key对应的键值队
student = {'name': '小明', 'age': 20, 'tel': '12312321'}
print('name' in student)    #True
print('小明' in student)     #False
  • len(), max() ,min
  • dict() - 本身是一个序列,序列中的元素是小序列,小序列必须有且只有2个元素,而且这两个元素中的第一个元素是不可变的
  • 字典转列表/元组的时候,是将字典的key取出来作为列表/元组的元素

注意: 取最大最小值取得是key的最大值和最小值

print(len(student))
print(max(student))
print(dict([[1, 2], ['a', 100 ], [100, [1] ]]))
print(list(student))
print(str(student))

7.相关方法

7.1字典.clear()

  • 清空字典
student.clear()

7.2字典.copy

  • 复制字典的内容,产生一个新的字典
student = {'name': '小明', 'age': 20, 'tel': '12312321'}
student1 = student.copy()

7.3 dict.fromkeys(序列,值)

  • 创建一个新的字典,将序列中的元素作为新字典的key,指定的值作为美国key对应的值
new_dict = dict.fromkeys('abcd', 10)
print(new_dict)

7.4 字典1.update(字典2)

  • 将字典2中的键值队添加到字典1中
print('===============================')
dict1 = {'a': 10, 'b': 20, 'z': 100, }
dict1.update({'c': 30, 'b': 15})
print(dict1)

一.昨日复习
1.格式字符串
2.列表(list)
2.1 列表中元素的增删改查
2.1.1 查:
2.1.2增:
2.1.3删:
2.1.4改:今日学习笔记
3.列表的相关运算
3.1数学运算: +, *
3.2 比较运算:==, !=
4.内置函数
5.相关方法
5.1 列表.count(元素)
5.2列表.extend(序列)
5.3列表.index(元素)
5.4列表.reverse()
5.4.1补充: 内置函数:reversed(序列)
5.5列表.sort()
5.5.1列表.sort(reverse = True)
5.6列表.copy()
5.6.1补充:变量
二.元组
1.什么是元组:
2.相关操作
2.1 查 - 获取元素
2.2遍历
2.3 数学运算, 比较运算

  1. 元组专有特点
    3.1只有一个元素的元组,需要在这个元素后面加一个逗号
    3.2 元组的值可以去掉小括号
    3.3 变量的个数和元组中的元素的个数保持一致
    3.4 通过多个变量去获取元组元素的时候
    三.字典
    1.什么是字典(dict)
    2.什么时候用字典
    3.查 - 获取字典的值
    3.1 获取key对应的值:
    3.1.1 获取key对应的值:
    3.2遍历
    4.增/修改 - 添加键值队
    5.删
    5.1 del 字典[key] - 删除字典中key对应的键值队
    5.2 字典.pop(key)
    6.相关运算
    7.相关方法
    7.1字典.clear()
    7.2字典.copy
    7.3 dict.fromkeys(序列,值)
    7.4 字典1.update(字典2)

补充:进阶必读 python cookbook 和 流畅的python

你可能感兴趣的:(python_笔记_day8_字典_元组_列表)