元组
tup1 = ('Google', 'Runoob', 1997, 2000)
元组表现形式tuple
元组是一个不可变序列(一般当我们希望数据不改变时,我们使用元组,其他情况下基本都用列表)
元组不是空元组至少有一个 逗号(,) 当元组不是空元组时括号可以省略
元组解包指将元组当中的每一个元素都赋值给一个变量
# 元组是用()来表示的 tuple
tuple1 = (1, 2, 3, 4)
print(tuple1, type(tuple1))
print(tuple1[0])
tuple1 = 10
print(type(tuple1))
# 如果元组不是空元组,那么它里面至少有一个逗号
tuple2 = (10,)
tuple2 = 10,
print(type(tuple2))
# 元组的拆包
tuple1 = (1, 2, 3, 4, 5)
a,b,c,d,e = tuple1
# *a, b, c = tuple1
print(a, b, c, d, e)
# 字符串的拆包
s = 'abcdef'
a, b, *c = s
print(a, b, c)
字典
- 字典属于一种新的数据结构称为映射(mapping)
- 字典的作用和列表类似,都是用来存储对象的容器
- 列表存储数据的性能好,但是查询数据的性能差,字典正好与之相反
- 在字典中每一个元素都有唯一的名字,通过这个唯一的名字可以找到指定的元素
- 这个唯一的名字我们称之为key 通过key可以快速查询value 也可以称之为值
- 字典我们也称之为键值对(key-value)结构
- 每个字典中都可以有多个键值对,而每一个键值对我们称其为一项(item)
- 创建一个有数据的字典 语法 {key:value}
- 字典的值可以是任意对象 字典的键可以是任意的不可变对象(int str bool tuple…)
- 字典的键是不能重复的,如果出现重复的后面的会替换前面的
list1 = [1,2,3,4,5,6,7,8,7,6,5,4,3,2,3,4,5,6,7,8,7,6,5,3,4,5,6,7,8,7,6,5,4,3,2,3,4,5]
字典:key-value 键-值 (名称:数据) {}来表示
dict1 = {}
print(type(dict1))
# 数据类型 {key: value} 这么一个key-value我们称它为一项
# 当字典中的key有重复的时候,后面的会代替前面的
dict3 = dict([('name', '郭靖'), ('age', 30), ('gender', '男')])
print(dict3)
import collections
d1=collections.OrderedDict(([('name', '郭靖'), ('age', 30), ('gender', '男')]))
dict1 = {'name': '郭靖',
'age': 30,
'gender': '男',
'name1': '黄蓉'
}
print(dict1['name1'])
字典的遍历
dict1 = dict(name='郭靖', age=30, gender='男')
print(dict1.get('name'))
print(dict1.keys())
for i in dict1.keys():
print(i)
print(dict1.values(),type(dict1.values()))
print(dict1.items())
for j in dict1.items():
print(j)
for j,k in dict1.items():
print(j)
print(j,k)
深拷贝&浅拷贝
集合
# 集合 : set {}
# 和列表的不同点:
# 1. 集合只能存储不可变对象
set1 = {(1, 2), 'ab', True, None, [1, 2, 3]}
print(set1)
# 2. 集合中存储的对象是无序的 没有索引
set1 = {10, 6, 8}
print(set1)
print(set1)
# 3. 集合不能出现重复元素 去重set()
set1 = {(1, 2), 'ab', True, None, 1, 0, False}
print(set1)
set1 = {}
set1 = set()
print(set1, type(set1))
list1 = [1, 2, 3, 4, 5, 1, 2, 3]
# 将字典转换为集合的时候,只会包含字典当中的key
dict1 = {1: '1', 2: '2'}
s = set(dict1)
print(s)
作业
- 1.a = {“name”:“123”,“data”:{“result”:[{“src”:“python1”},{“src”:“python2”},{“src”:“python3”}]}}找到python1/python2/python3
a = {"name":"123","data":{"result":[{"src":"python1"},{"src":"python2"},{"src":"python3"}]}}
python1=a["data"]['result'][0]['src']
python2=a["data"]['result'][1]['src']
python3=a["data"]['result'][2]['src']
print(python1, python2, python3)
- 2.有如下值集合[11,22,33,44,55,66,77,88,99,90], 将所有大于66的值保存至字典的第一个key的值中,将小于66值保存至第二个key的值中。
a = [11,22,33,44,55,66,77,88,99,90,1]
under = []
above = []
for i in a:
if i < 66:
under.append(i)
else:
above.append(i)
dic = {'k1':under,'k2':above}
print(dic)