- 元组简介
- 字典简介
- 字典的创建
- 1. 用{}创建
- 获取value, 直接用 dict[key]
- 蛤蟆功
- 2. 使用dict类去创建字典
- {‘name’: ‘郭靖’, ‘age’: 18, ‘sex’: ‘男’}
- 3. 使用dict去创建
- python2 有序字典 orderdict 无序字典
- 需要dict()括号里的数据是属于一种双值子序列的形式
- 双值序列 [1, 2]
- 子序列 (’a’)
- 双值子序列: [(1, 2), (3, 4)]
- 通过key来遍历 dict.keys(),获取的是value
- 男
- 通过value来遍历 dict.values()
- 男
- 通过一项来进行遍历 dict.items()
- 集合只能存储不可变对象
- TypeError: unhashable type: ‘list’
- 集合中存储的对象是无序的
- {8, 9, 10, 6} # 无序输出
- 集合不能出现重复元素 通过这一特性,我们可以来做一个数据去重的效果
- {‘1’}
- {1, 2, 3, 4, 5, 6, 7}
- {3, 4}
- remove() 删除集合中指定的元素
- clear() 清空集合
- 集合的运算
- & 交集运算
- | 并集运算
- - 差集运算
- ^ 亦或集
元组简介
- 元组表现形式tuple
- 元组是一个不可变序列(一般当我们希望数据不改变时,我们使用元组,其他情况下基本都用列表)
- 使用()创建元素
- 元组不是空元组至少有一个 逗号(,) 当元组不是空元组时括号可以省略
- 元组解包指将元组当中的每一个元素都赋值给一个变量
- 与字符串一样,元组之间可以使用 + 号和 * 号进行运算。这就意味着他们可以组合和复制,运算后会生成一个新的元组。
- 所谓元组的不可变指的是元组所指向的内存中的内容不可变。
# 元组的表达形式 () tuple
# 元组的创建与访问
tuple1 = (1, 2, 3, 4, 5)
print(tuple1, type(tuple1))
print(tuple1[2])
print(tuple1[2::])
tup2 = ('Google', 'Runoob', 1997, 2000)
tup3 = "a", "b", "c", "d" # 不需要括号也可以
print(tup2)
print(tup3, type(tup3))
-------------------
(1, 2, 3, 4, 5) <class 'tuple'>
3
(3, 4, 5)
('Google', 'Runoob', 1997, 2000)
('a', 'b', 'c', 'd') <class 'tuple'>
=========================================
# 如果元组不是一个空元祖,那么它必须得有一个逗号, 否则括号会被当作运算符使用
tuple2 = 10,
tuple3 = (10)
print(tuple2, type(tuple2))
print(tuple3, type(tuple3))
---------------
(10,) <class 'tuple'>
10 <class 'int'>
===========================================
#元组中的元素值是不允许修改的,但我们可以对元组进行连接组合
tup1 = (12, 34.56)
tup2 = ('abc', 'xyz')
# 以下修改元组元素操作是非法的。
# tup1[0] = 100
# 创建一个新的元组
tup3 = tup1 + tup2
print(tup3)
---------------------
(12, 34.56, 'abc', 'xyz')
=========================================================
# 元组中的元素值是不允许删除的,但我们可以使用del语句来删除整个元组
tup = ('Google', 'Runoob', 1997, 2000)
print(tup)
del tup
print("删除后的元组 tup : ")
print(tup)
------------------
NameError: name 'tup' is not defined
('Google', 'Runoob', 1997, 2000)
删除后的元组 tup :
进程已结束,退出代码1
===============================================
元组的运算
print(len((1, 2, 3)))
print((1, 2, 3) + (4, 5, 6))
print(('Hi!',) * 4)
print(3 in (1, 2, 3))
for x in (1, 2, 3):
print(x,)
-----------------------------
3
(1, 2, 3, 4, 5, 6)
('Hi!', 'Hi!', 'Hi!', 'Hi!')
True
1
2
3
========================================
元组内置函数
len(tuple) #计算元组元素个数
max(tuple) #返回元组中元素最大值
min(tuple) #返回元组中元素最小值
tuple(iterable) #将可迭代系列转换为元组
list1= ['Google', 'Taobao', 'Runoob', 'Baidu']
tuple1=tuple(list1)
print(tuple1)
-----------------------------
('Google', 'Taobao', 'Runoob', 'Baidu')
==================================
元组不可变
tup = ('r', 'u', 'n', 'o', 'o', 'b')
#tup[0] = 'g' # 不支持修改元素
print(id(tup)) # 查看内存地址
tup = (1,2,3)
print(id(tup))
-------------------
2956170277600
2956170819008
字典简介
字典的基本介绍
- 字典属于一种新的数据结构称为映射(mapping)
- 字典的作用和列表类似,都是用来存储对象的容器
- 列表存储数据的性能好,但是查询数据的性能差,字典正好与之相反
- 在字典中每一个元素都有唯一的名字,通过这个唯一的名字可以找到指定的元素
- 这个唯一的名字我们称之为key 通过key可以快速查询value 也可以称之为值
- 字典我们也称之为键值对(key-value)结构
- 字典的每个键值 key-value 对用冒号 : 分割,每个对之间用逗号(,)分割,整个字典包括在花括号 {} 中
- 每个字典中都可以有多个键值对,而每一个键值对我们称其为一项(item)
创建一个有数据的字典 语法 {key:value}, 例如
d = {key1 : value1, key2 : value2, key3 : value3 }
字典的值可以是任意对象 字典的键可以是任意的不可变对象(int str bool tuple….)
- 字典的键是不能重复的,如果出现重复的后面的会替换前面的
```python
字典的创建
1. 用{}创建
dict2 = { ‘name’: ‘郭靖’, ‘age’: 18, ‘sex’: ‘男’, ‘name’: ‘欧阳锋’, ‘skill’: ‘蛤蟆功’ } print(dict2, type(dict2))
获取value, 直接用 dict[key]
print(dict2[‘skill’])
{‘name’: ‘欧阳锋’, ‘age’: 18, ‘sex’: ‘男’, ‘skill’: ‘蛤蟆功’}
蛤蟆功
2. 使用dict类去创建字典
dict1 = dict(name=’郭靖’, age=18, sex=’男’)
print(dict1, type(dict1))
{‘name’: ‘郭靖’, ‘age’: 18, ‘sex’: ‘男’}
3. 使用dict去创建
python2 有序字典 orderdict 无序字典
需要dict()括号里的数据是属于一种双值子序列的形式
双值序列 [1, 2]
子序列 (’a’)
双值子序列: [(1, 2), (3, 4)]
dict2 = dict([(‘name’, ‘郭靖’), (‘age’, 18), (‘sex’, ‘男’)])
print(dict2, type(dict2))
{‘name’: ‘郭靖’, ‘age’: 18, ‘sex’: ‘男’}
<a name="RtAIz"></a>
### 字典的使用
- dict()函数来创建字典
- get(key[,default]) 根据键来获取字典的值。第二个参数可以指定一个默认值,当获取不到值的时候会返回默认值
- update() 将其他字典的key-value添加到当前的字典当中
- del 删除字典中的key-value
- popitem() 删除字典最后的一个key-value 这个方法是有返回值的。删除之后它会将删除的key-value作为返回值返回
- pop(key[,default]) 根据key删除自定中的value。第二个参数可以指定一个默认值,当获取不到值的时候会返回默认值
- in, not in 检测的是key
```python
# in, not in
dict1 = dict(name='郭靖', age=18, sex='男')
# print(len(dict1))
# in, not in 检测的是key
print('name' in dict1)
print(18 in dict1)
----------------------------
True
False
================================
# 获取值得方式
# 使用key获取value dict[key] 如果不存在key则会报错
dict1 = dict(name='郭靖', age=18, sex='男')
print(dict1.get('name'))
print(dict1.get('skill'))#如果key不存在,不会报错
-----------------
郭靖
None
====================================
# 修改字典
# dict[key] = value
dict1 = dict(name='郭靖', age=18, sex='男')
dict1['name'] = '欧阳锋'
print(dict1)
------------------
{'name': '欧阳锋', 'age': 18, 'sex': '男'}
=============================================
# dict.setdefault(key, [default]) 向字典中添加key-value
# 如果这个key已经存在于字典中,不会对字典有影响, 如果不存在,则向字典中添加这个key,并设置value, 返回value
dict1 = dict(name='郭靖', age=18, sex='男')
result = dict1.setdefault('name', '欧阳锋')
result = dict1.setdefault('skill', '降龙十八掌')
print(result)
print(dict1)
-----------------------------
降龙十八掌
{'name': '郭靖', 'age': 18, 'sex': '男', 'skill': '降龙十八掌'}
==================================================
# dict.update() 将其他字典中的key—value添加到当前字典中
d1 = {'1': 1}
d2 = {'2': 2}
d1.update(d2)
print(d1)
------------------
{'1': 1, '2': 2}
==========================================
# 删除
# del 关键字删除,则删除key-value对
dict1 = dict(name='郭靖', age=18, sex='男')
print(dict1)
del dict1['name']
print(dict1)
--------------------------
{'name': '郭靖', 'age': 18, 'sex': '男'}
{'age': 18, 'sex': '男'}
=============================================
# dict.popitem() 随机删除一个键值对,一般都会删除最后一个, 有一个返回值,就是你删除的对象,结果是一个元组
dict1 = dict(name='郭靖', age=18, sex='男')
result = dict1.popitem()
print(result)
print(dict1)
----------------------
('sex', '男')
{'name': '郭靖', 'age': 18}
===================================================
# dict.pop(key,[default]) 根据key来删除键值对, 返回值就是你删除key对应的value
dict1 = dict(name='郭靖', age=18, sex='男')
result1 = dict1.pop('sex')
result2 = dict1.pop('skill', '你删除的这个不存在') # 没有键值,也返回要删的值
print(result1)
print(result2)
print(dict1)
---------------------
男
你删除的这个不存在
{'name': '郭靖', 'age': 18}
====================================================
# dict.clear() 清空字典
dict1 = dict(name='郭靖', age=18, sex='男')
print(dict1)
dict1.clear()
print(dict1)
-----------------------------------
{'name': '郭靖', 'age': 18, 'sex': '男'}
{}
================================================
# list.clear() 清空列表
list1 = [1, 2, 3, 4, 5]
print(list1)
list1.clear()
print(list1)
----------------------------------
[1, 2, 3, 4, 5]
[]
copye()
copy() 方法用来对字典进行潜复制
注意:潜复制只会复制字典本身,如果字典中还有个字典是不会进行复制的
# 浅拷贝
# 做拷贝的对象必须是可变类型
# 浅拷贝只能对第一层的数据进行拷贝,如果,第一层的数据也是个可变类型,那么浅拷贝无法将这个数据重新拷贝一份形成新的id
dict1 = {'1': 1, '2': 2, 'list1': [1, 2, 3, {'name': [12, 23]}]}
dict2 = dict1.copy()
print(id(dict1), id(dict2))
print(id(dict1['list1']), id(dict2['list1']))
-----------------------
2847754889472 2847756270784
2847756293568 2847756293568
==========或者==========
import copy
dict1 = {'1': 1, '2': 2, 'list1': [1, 2, 3, {'name': [12, 23]}]}
dict2 = copy.copy(dict1)
print(id(dict1), id(dict2))
print(id(dict1['list1']), id(dict2['list1']))
----------------
2979608865088 2979610246528
2979610277504 2979610277504
==========================================================
# 深拷贝
# 深拷贝可以对所有的数据全部进行拷贝,形成一个新的id
dict1 = {'1': 1, '2': 2, 'list1': [1, 2, 3, {'name': [12, 23]}]}
dict3 = copy.deepcopy(dict1)
print(id(dict1), id(dict3))
print(id(dict1['list1']), id(dict3['list1']))
-----------------------
2205928008000 2205929466176
2205929420288 2205929389824
遍历字典
我们主要可以通过3种方式对字典进行遍历
- keys() 该方法返回字典所有的key
- values() 该方法返回一个序列 序列中保存有字典的值
- items() 该方法会返回字典中所有的项 它返回一个序列,序列中包含有双值子序列 双值分别是 字典中的key和value
```python
通过key来遍历 dict.keys(),获取的是value
dict1 = dict(name=’郭靖’, age=18, sex=’男’) for k in dict1.keys(): print(dict1[k])
郭靖 18
男
通过value来遍历 dict.values()
dict1 = dict(name=’郭靖’, age=18, sex=’男’) for v in dict1.values():
print(v)
郭靖 18
男
通过一项来进行遍历 dict.items()
dict1 = dict(name=’郭靖’, age=18, sex=’男’) for k, v in dict1.items():
print(k, '=', v)
name = 郭靖 age = 18 sex = 男
<a name="L7RW7"></a>
### 集合简介
- 集合表现形式set 集合和列表非常相似
- 不同点
- 集合只能存储不可变对象
- 集合中存储的对象是无序的
- 集合不能出现重复元素
- 使用{}来创建集合
- 可以通过set()来将序列和字典转换成集合
- len() 使用len()来获取集合中元素的数量
- add()像集合中添加元素
- update()将一个集合中的元素添加到另一个集合当中
- pop()随机删除集合中的一个元素一般是删除最后一个元素
- remove() 删除集合中指定的元素
- clear() 清空集合
```python
# set表示集合 {}
# 集合只能存储不可变对象
# s1 = {1, 'abc', [1, 2, 3]}
# print(s1, type(s1))
# 集合中存储的对象是无序的
# s2 = {6, 8, 9, 10}
# print(s2)
# 集合不能出现重复元素 通过这一特性,我们可以来做一个数据去重的效果
# s3 = {1, 2, 3, 4, 1, 2, 3, 4}
# print(s3)
# list1 = [1, 1, 2, 3, 3]
# s4 = set(list1)
# print(s4)
dict1 = {'1': 1}
print(set(dict1))
# s = {} # 创建空集合, 需要用到set()
# s = set()
# print(type(s))
集合的运算
- & 交集运算
- | 并集运算
- 差集运算
- ^ 亦或集
- <= 检查一个集合是否是另一个集合的子集
- < 检查一个集合是否是另一个集合的真子集
=检查一个集合是否是另一个集合的超集
检查一个集合是否是另一个集合的真超集 ```python
集合只能存储不可变对象
s1 = {1, ‘abc’, [1, 2, 3]} # 报错,列表不能作为集合的元素 print(s1, type(s1))
TypeError: unhashable type: ‘list’
集合中存储的对象是无序的
s2 = {6, 8, 9, 10}
print(s2)
{8, 9, 10, 6} # 无序输出
集合不能出现重复元素 通过这一特性,我们可以来做一个数据去重的效果
s3 = {1, 2, 3, 4, 1, 2, 3, 4} print(s3) list1 = [1, 1, 2, 3, 3] s4 = set(list1)
print(s4)
{1, 2, 3, 4} {1, 2, 3}
====================== dict1 = {‘1’: 1} # 字典转集合 print(set(dict1))
{‘1’}
s = {} # 创建空集合, 需要用到set() s = set()
print(type(s))
==================== set1 = {1, 2, 3, 4} print(len(set1)) # 使用len()来获取集合中元素的数量 set1.add(5) print(set1)# add()像集合中添加元素
set2 = {6, 7} set1.update(set2)
print(set1) # update()将一个集合中的元素添加到另一个集合当中
4 {1, 2, 3, 4, 5}
{1, 2, 3, 4, 5, 6, 7}
set1 = {4, 3, 1, 2} print(set1) set1.pop() #pop()随机删除集合中的一个元素一般是删除最开始一个元素 set1.pop()
print(set1)
{1, 2, 3, 4}
{3, 4}
remove() 删除集合中指定的元素
set1 = {4, 3, 1, 2} set1.remove(3) print(set1)
clear() 清空集合
set1.clear()
print(set1)
{1, 2, 4} set()
集合的运算
s1 = {1, 2, 3, 7, 8} s2 = {4, 5, 6, 7, 8} print(‘s1 = ‘, s1) print(‘s2 = ‘, s2)
& 交集运算
print(‘s1 & s2 =’, s1 & s2)
| 并集运算
print(‘s1 | s2 =’, s1 | s2)
- 差集运算
print(‘s1 - s2 = ‘, s1 - s2)
^ 亦或集
print(‘s1 ^ s2 =’, s1 ^ s2)
s1 = {1, 2, 3, 7, 8} s2 = {4, 5, 6, 7, 8} s1 & s2 = {8, 7} s1 | s2 = {1, 2, 3, 4, 5, 6, 7, 8} s1 - s2 = {1, 2, 3} s1 ^ s2 = {1, 2, 3, 4, 5, 6}
<a name="Yhr7P"></a>
### 字符串,列表,元组,字典, 集合比较
```python
#!D:\pythonProject
# -*- coding: utf-8 -*-
# @Time : 2021/1/28 21:58
# @Author : J. Ding
# @File : 字符串,列表,元组,字典, 集合比较.py
str1 = 'abcdef'
str2 = 'GHIJ'
list1 = ['a', 'b', 'c', 'd', 'e', 'f']
list2 = ['G', 'H', 'I', 'J']
tuple1 = ('a', 'b', 'c', 'd', 'e', 'f')
tuple2 = ('G', 'H', 'J', 'J')
dict1 = {0 : 'a', 1 : 'b', 2 : 'c', 3 : 'd', 4 : 'e', 5 : 'f'}
dict2 = {6 : 'G', 7 : 'H', 8 : 'I', 9 : 'J'}
set1 = {1, 5, 4, 3, 2}
set2 = {6, 7, 4, 5}
print("str1 = 'abcdef'")
print("str2 = 'GHIJ'")
print("list1 = ['a', 'b', 'c', 'd', 'e', 'f']")
print("list2 = ['G', 'H', 'I', 'J']")
print("tuple1 = ('a', 'b', 'c', 'd', 'e', 'f')")
print("tuple2 = ('G', 'H', 'J', 'J')")
print("dict1 = {0 : 'a', 1 : 'b', 2 : 'c', 3 : 'd', 4 : 'e', 5 : 'f'}")
print("dict2 = {6 : 'G', 7 : 'H', 8 : 'I', 9 : 'J'}")
print('set1 = {1, 5, 4, 3, 2}')
print('set2 = {6, 7, 4, 5}')
#取值
print ('========取值比较========')
print('str1[0] = ', str1[0])
print('list1[0] = ', list1[0])
print('tuple1[0] = ', tuple1[0])
print('dict1.get(0) = ', dict1.get(0))
print('# 集合无序,无法按位取值')
#长度 len()
print('========元素个数比较========')
print('len(str1) = ', len(str1))
print('len(list1) = ', len(list1))
print('len(tuple1) = ', len(tuple1))
print('len(dict1) = ', len(dict1))
print('len(set1) = ', len(set1))
# in, not in
print('========in 操作比较========')
print("'a' in str1 = ", 'a' in str1)
print("'a' in list1 = ", 'a' in list1)
print("'a' in tuple1 = ", 'a' in tuple1)
print('0 in dict1 = ', 0 in dict1) # check if key is in the dict
print('1 in set1 =', 1 in set1)
# + (合并)
print('========加法比较========')
print('str1 + str2 = ', str1 + str2)
print('list1 + list2 = ', list1 + list2)
print('tuple1 + tuple2 = ', tuple1 + tuple2)
dict1.update(dict2)
print('在 dict1.update(dict2) 操作之后, dict1 = ', dict1)
set1.update(set2)
print('在 set1.update(set2) 操作之后, set1 = ', set1)
# *
print('========乘法比较========')
print('str1 * 2 = ', str1 * 2)
print('list1 * 2 = ', list1 * 2)
print('tuple1 * 2 = ', tuple1 * 2)
print('dict 没有乘法操作')
print('set 没有乘法操作')
# max / min
print('========max比较========')
print('max(str2) = ', max(str2))
print('max(list2) = ', max(list2))
print('max(tuple2) = ', max(tuple2))
print('max(dict2) = ', max(dict2))
print('max(set2) = ', max(set2))
# 切片
print('========切片比较========')
print('str1[0:5:2] = ', str1[0:5:2])
print('list1[0:5:2] = ', list1[0:5:2])
print('tuple1[0:5:2] = ', tuple1[0:5:2])
print('# 字典没有切片操作') # 字典没有切片操作
print('# 集合没有切片操作') # 集合没有切片操作
# 增加
print('========增加比较========')
list2 = ['G', 'H', 'I', 'J']
dict2 = {6 : 'G', 7 : 'H', 8 : 'I', 9 : 'J'}
set2 = set2 = {6, 7, 4, 5}
print('# 字符串不可变,不支持修改元素') # 字符串不可变,不支持增加元素
print("list2.append('K')")
list2.append('K')
print('list2 = ', list2)
print('# 元组不可变,不支持修改元素') # 元组不可变,不支持修改元素
print("dict2.update({10: 'K'})")
dict2.update({10 : 'K'})
print('dict2 =', dict2)
set2.add(8)
print('set2 =', set2)
# 删除
print('========删除比较========')
list1 = ['a', 'b', 'c', 'd', 'e', 'f']
dict1 = {0: 'a', 1: 'b', 2: 'c', 3: 'd', 4: 'e', 5: 'f'}
set1 = {1, 5, 4, 3, 2}
print('#字符串不支持删除元素,除非空格')
print('list1.pop(2) = ', list1.pop(2))
print('# 元组不可变,不支持删除元素')
print('dict1.pop(2) =', dict1.pop(2))
del dict1[3] # 删除键值为3的key-value对
print('del dict1[3] =', dict1, '#删除键值为3的key-value对')
print('set1.pop() =', set1.pop(), '# pop()随机删除集合中的一个元素, 一般是第一个元素') # pop()随机删除集合中的一个元素, 一般是第一个元素
set1.remove(3)
print('set1.remove(3) =', set1, '# pop(3)删除集合中的一个元素 3') # pop(3)删除集合中的一个元素 3
#修改
print('========修改比较========')
list1 = ['a', 'b', 'c', 'd', 'e', 'f']
dict1 = {0: 'a', 1: 'b', 2: 'c', 3: 'd', 4: 'e', 5: 'f'}
print('#字符串不支持修改元素')
list1[0] = 'x'
print("list1[0] = 'x'")
print(list1)
print('# 元组不可变,不支持修改元素')
dict1[0] = 'x'
print("dict1[0] = 'x'")
print(dict1)
print('# 集合不可变,不支持修改元素')
#遍历
print('========遍历比较========')
str1 = 'abcdef'
list1 = ['a', 'b', 'c', 'd', 'e', 'f']
tuple1 = ('a', 'b', 'c', 'd', 'e', 'f')
dict1 = {0 : 'a', 1 : 'b', 2 : 'c', 3 : 'd', 4 : 'e', 5 : 'f'}
set1 = {1, 5, 4, 3, 2}
print('字符串遍历:')
for i in str1:
print(i)
print('列表遍历:')
for i in list1:
print(i)
print('元组遍历:')
for i in tuple1:
print(i)
print('字典遍历:')
for i in dict1.keys():
print(i, dict1.get(i))
print('集合遍历: #自动排序列出')
for i in set1:
print(i)
#清空
print('========清空比较========')
print('# 字符串没有清空方法') # 字符串没有清空方法
list1.clear()
print('list1.clear() =', list1)
print('# 元组没有清空方法') # 元组没有清空方法
dict1.clear()
print('dict1.clear() =', dict1)
set1.clear()
print('set1.clear() =', set1)
--------------输出-----------------------
str1 = 'abcdef'
str2 = 'GHIJ'
list1 = ['a', 'b', 'c', 'd', 'e', 'f']
list2 = ['G', 'H', 'I', 'J']
tuple1 = ('a', 'b', 'c', 'd', 'e', 'f')
tuple2 = ('G', 'H', 'J', 'J')
dict1 = {0 : 'a', 1 : 'b', 2 : 'c', 3 : 'd', 4 : 'e', 5 : 'f'}
dict2 = {6 : 'G', 7 : 'H', 8 : 'I', 9 : 'J'}
set1 = {1, 5, 4, 3, 2}
set2 = {6, 7, 4, 5}
========取值比较========
str1[0] = a
list1[0] = a
tuple1[0] = a
dict1.get(0) = a
# 集合无序,无法按位取值
========元素个数比较========
len(str1) = 6
len(list1) = 6
len(tuple1) = 6
len(dict1) = 6
len(set1) = 5
========in 操作比较========
'a' in str1 = True
'a' in list1 = True
'a' in tuple1 = True
0 in dict1 = True
1 in set1 = True
========加法比较========
str1 + str2 = abcdefGHIJ
list1 + list2 = ['a', 'b', 'c', 'd', 'e', 'f', 'G', 'H', 'I', 'J']
tuple1 + tuple2 = ('a', 'b', 'c', 'd', 'e', 'f', 'G', 'H', 'J', 'J')
在 dict1.update(dict2) 操作之后, dict1 = {0: 'a', 1: 'b', 2: 'c', 3: 'd', 4: 'e', 5: 'f', 6: 'G', 7: 'H', 8: 'I', 9: 'J'}
在 set1.update(set2) 操作之后, set1 = {1, 2, 3, 4, 5, 6, 7}
========乘法比较========
str1 * 2 = abcdefabcdef
list1 * 2 = ['a', 'b', 'c', 'd', 'e', 'f', 'a', 'b', 'c', 'd', 'e', 'f']
tuple1 * 2 = ('a', 'b', 'c', 'd', 'e', 'f', 'a', 'b', 'c', 'd', 'e', 'f')
dict 没有乘法操作
set 没有乘法操作
========max比较========
max(str2) = J
max(list2) = J
max(tuple2) = J
max(dict2) = 9
max(set2) = 7
========切片比较========
str1[0:5:2] = ace
list1[0:5:2] = ['a', 'c', 'e']
tuple1[0:5:2] = ('a', 'c', 'e')
# 字典没有切片操作
# 集合没有切片操作
========增加比较========
# 字符串不可变,不支持修改元素
list2.append('K')
list2 = ['G', 'H', 'I', 'J', 'K']
# 元组不可变,不支持修改元素
dict2.update({10: 'K'})
dict2 = {6: 'G', 7: 'H', 8: 'I', 9: 'J', 10: 'K'}
set2 = {4, 5, 6, 7, 8}
========删除比较========
#字符串不支持删除元素,除非空格
list1.pop(2) = c
# 元组不可变,不支持删除元素
dict1.pop(2) = c
del dict1[3] = {0: 'a', 1: 'b', 4: 'e', 5: 'f'} #删除键值为3的key-value对
set1.pop() = 1 # pop()随机删除集合中的一个元素, 一般是第一个元素
set1.remove(3) = {2, 4, 5} # pop(3)删除集合中的一个元素 3
========修改比较========
#字符串不支持修改元素
list1[0] = 'x'
['x', 'b', 'c', 'd', 'e', 'f']
# 元组不可变,不支持修改元素
dict1[0] = 'x'
{0: 'x', 1: 'b', 2: 'c', 3: 'd', 4: 'e', 5: 'f'}
# 集合不可变,不支持修改元素
========遍历比较========
字符串遍历:
a
b
c
d
e
f
列表遍历:
a
b
c
d
e
f
元组遍历:
a
b
c
d
e
f
字典遍历:
0 a
1 b
2 c
3 d
4 e
5 f
集合遍历: #自动排序列出
1
2
3
4
5
========清空比较========
# 字符串没有清空方法
list1.clear() = []
# 元组没有清空方法
dict1.clear() = {}
set1.clear() = set()
进程已结束,退出代码0
作业
- a = {“name”:”123”,”data”:{“result”:[{“src”:”python1”},{“src”:”python2”},{“src”:”python3”}]}} 找到python1/python2/python3 ```python a = {“name”:”123”,”data”:{“result”:[{“src”:”python1”},{“src”:”python2”},{“src”:”python3”}]}} for i in a[‘data’][‘result’]: print(i[‘src’])
python1 python2 python3
- 有如下值列表[11,22,33,44,55,66,77,88,99,90], 将所有大于66的值保存至字典的第一个key的值中,将小于66值保存至第二个key的值中。
```python
list1 = [11,22,33,44,55,66,77,88,99,90]
list3 = []
list4 = []
dict1 = {'大于66' : list3, '小于66' : list4}
for i in list1:
if i > 66:
dict1.setdefault('大于66', list3.append(i))
if i < 66:
dict1.setdefault('小于66', list4.append(i))
print(dict1)
---------------------------------------
{'大于66': [77, 88, 99, 90], '小于66': [11, 22, 33, 44, 55]}