day7 容器类型总结

2018-11-13  本文已影响0人  落幕丶丶
1.列表赋值

a.直接使用一个列表变量给另一个变量赋值,赋的是地址。
赋完值之后,对其中一个列表进行增删改,会影响另一个列表。
b.如果赋值的时候将赋的列表的切片或者拷贝,会产生新的地址,然后使用新的地址赋值。
赋完值之后,两个列表相互之间不影响

# 现象1
list1 = [1, 2, 3]
list2 = list1
list2 = list2.append(100)
print(list1, list2)
list1 = [1, 2, 3]
list2.append(200)
print(list2)

# 现象2
list1 = [1, 2, 3]
list2 = list1[:]
list2 = list2.append(100)
print(list1, list2)
2.列表中的方法

1.列表.count(元素) -- 获取指定元素在列表中出现的次数

numbers = [1, 100, 50, 1, 100, 62]
print(numbers.count(100))

2.列表.extend(序列) -- 将序列中所有元素都添加到列表中

numbers.extend(['abc', 'hello'])
print(numbers)
numbers.extend('world')
print(numbers)
numbers.extend(range(15, 20))
print(numbers)

3.列表.index(元素) -- 获取指定元素在列表中的下标
注意:a.如果元素有多个,只取第一个的下标
b.如果这个元素不存在,会报错(ValueError)

numbers = [1, 2, 3, 4, 5, 3]
print(numbers.index(3))

4.列表.reverse() -- 方向列表(将列表元素倒序)

numbers = [19, 89, 2, 8, 98, 10, 32]
numbers.reverse()
print(numbers)

5.列表.sort() -- 对列表进行升序排序(从小到大)
列表.sort(reverse=True) -- 对列表进行升序排序(从大到小)
注意:a.列表中元素类型相同
b.元素支持比较运算符

numbers = [19, 89, 2, 8, 98, 10, 32]
numbers.sort()
print(numbers)

numbers = [19, 89, 2, 8, 98, 10, 32]
numbers.sort(reverse=True)
print(numbers)

names = ['路飞', '佐罗', '乔巴', '弗兰克']
names.sort()
print(names)

6.列表.clear() -- 清空列表

names = ['路飞', '佐罗', '乔巴', '弗兰克']
names.clear()
print(names)
# 注意:清空列表尽量使用clear()
# names = ['路飞', '佐罗', '乔巴', '弗兰克']
# names = []
# print(names)

7.列表.copy() -- 将列表元素直接赋值一份产生一个新的列表,效果和列表[:]一样
注意:这儿的拷贝是浅拷贝

list1 = [1, 2, 3]
list1 = list1.copy()
print(list2)
print(list1 is list2)  #False


元组

1.什么是元组(tuple)
元组就是不可变的列表。(有序、不可变
有序 -- 可以通过下标去获取元素
不可变 -- 不支持增、删、改`

2.元组的字面量
通过小括号将多个元素括起来,多个元素之间用逗号隔开
a.只有一个元素的元组:在元素的后面必须加一个逗号
b.直接将多个数据用逗号隔开,不用括号括起来,还是一个元组值

tuple1 = (1, True, 'abc', [1, 2])
print(tuple1)

# a.只有一个元素的元组
tuple2 = (10,)
print(tuple2, type(tuple2))

# b.直接将多个数据用逗号隔开
tuple3 = 1, 2, 3, 'abc'
print(tuple3, type(tuple3))

# c.获取元组元素
tuple4 = (10, 20)
print(tuple4[0], tuple4[-2])

# 可以通过变量个数和元组元素个数保持一致来获取元组中的每个元素的剩下的部分。以列表形式返回
x, y = tuple4
print(x, y)


# 通过在变量名前加*,获取没有加*的变量获取到的元素
tuple5 = ('yuting', 98, 90, 99, 87, 78)
name, *scores = tuple5
print(name, scores)

name, number, *scores = tuple5
print(name, number)
print(scores)

*list1, number = tuple5
print(list1, number)

# (了解)
tuple1 = (1, 2, 3)
print(*tuple1)
list1 = ['aa', 'bb', 'cc']
print(*list1)

3.获取元组的元素和获取列表元素的方法一样

tuple1 = 1, 2, 3, 4, 5
print(tuple1[1])
print(tuple1[:3])
for item in tuple1:
    print(item)

4.相关运算和列表一样
+ 、 * 、 in、not in 、 len()、tuple()、max()、min()

5.元组相关的方法--只有两个
tuple.count()
tuple.index()



字典

1.什么是字典(dict)
字典是python中内置的容器类的数据类型,可变、无序的,字典的元表是键对

2.字典的字面量
使用大括号括起来,大括号中是键值对,多个键值对之间用逗号隔开
键值对 -- 键:值
键(key) -- 不可变的、唯一的(列表和字典等可变的数据不能作为key),一般使用字符串
值(value) -- 任何类型的数据

dict1 = {'aa': 100, 10: 'abc', (10, 20): 'hello'}

什么时候使用字典
如果一个容器里面存储的数据是不同意义的数据(数据之间需要区分、对应的),就使用字典

# 用一个变量来存储一个学生的信息:姓名、年龄、电话、成绩、学号

student = {'name': '小明', 'age': 28, 'tel': 18611112222, 'score': 59, '学号': 19820001}
print(student['name'])

字典的增删改查

1.查(获取字典的值)

a.获取单个值
字典[key] -- 获取字典中key对应的值(如果字典中key不存在会报错:KeyError)
确定key存在的时候一般用--字典[key]
字典.get(key) -- 获取字典中key对应的值(如果key不存在不会报错,并且会返回一个默认值None)
None是python中的关键词,表示一个特殊值,表示没有或者空的意思

dog1 = {'name': '旺财', 'age': 3, 'color': '黄色', 'type': '阿拉斯加'}
print(dog1['name'])
print(dog1['type'])

print(dog1.get('age'))

b.遍历

# 直接遍历字典拿到的是字典中所有的key
for key in dog1:
    print(key, dog1[key])
# 同时获取key和value(看着方便但是性能差,内存消耗多,不推荐使用)
for key,value in dog1.items():
    print(key, value)
2.增(添加键值对)

字典[key] = 值 --当字典中key不存在的时候,就是在字典中添加键值对

注意:在这儿的序列要求是能够转换成字典的序列。序列中的元素是只有两个元素的小序列

dict1 = {'a': 100}
dict1['b'] = 200
print(dict1)

字典1.update(序列) -- 将序列中的元素转换成键值对,然后再添加到字典1中

dict1 = {'a': 100, 'b': 200}
# 当key值有重名的时候,会用序列中键值对对应的值,更新字典中key对应的值
dict1.update({'aa': 10, 'bb': 20})
print(dict1)

dict1.update([[1, 2], ['a', 2]])
print(dict1)
3.改(修改key对应的值)

字典[key] = 值 -- 当key存在的时候,就是修改key对应的值

dict1 = {'a': 100, 'b': 200}
dict1['a'] = 10
print(dict1)
4.删(删除键值对)

a.del 字典[key] -- 删除字典中key对应的键值对

dict1 = {'a': 100, 'b': 200}
del dict1['a']
print(dict1)

b.字典.pop(key)--取出字典中key对应的值(删除整个键值对)

dict1 = {'a': 100, 'b': 200}
b = dict1.pop('b')
print(dict1, b)
# 删除最后一个键值对(取出最后一个键值对,以元祖的形式返回)
dict1 = {'a': 100, 'b': 200}
dict1.popitem()
print(dict1)
上一篇 下一篇

猜你喜欢

热点阅读