1.元组
元组介绍

元组也是一个序列结构,但是是一个不变的序列。除了内部元素不能修改以外,元组几乎和列表相同。

元组创建
· 用()

创建元组可以用()直接创建。实质是定义python使用的数据结构类型。
示例:

tup=("sword", "art", "online")
· 用tuple()进行创建

使用tuple()来创建,括号中的内容为序列元素。
示例:

tup=tuple("刀剑神域")
li=["sword", "art", "online"]
tup_2=tuple(li)
print(tup)
print(tup_2)
#==>('刀', '剑', '神', '域')
#==>('sword', 'art', 'online')
· 注意:

当创建只有单个元素的元组时,需要在元素后面加一个英文逗号",",否则不会被认为是元组。
示例:

tup=("sao",)
tup_2=("sao")
print(tup)
print(tup_2)
#==>("sao")
#==>sao
元组与列表相同的操作
  • 使用方括号加下标访问元素
  • 切片(形成新元组对象)
  • python内置函数:
  • 统计元素个数:tuple.count()
  • 返回索引:tuple.index()
  • 排序:sorted()
  • 反转:reversed()
  • 加法及乘法
    详情见另一篇博客:链接
元组中不允许的操作
  • 不允许 修改 、新增 元素。(一级)
  • 不允许 删除 某个元素(但可以删除整个元组)
注意:
  • 虽然无法对元组进行修改,但是可以对元组重新赋值,达到修改元组的目的。
  • 元组不具有append,extend,remove,pop,index等这些方法或类似的方法。
  • 由于元组不可变,因此相比于列表,元组的运算速度比较快。
元组与列表的区别
  • 元组不能增、删、改。
  • 元组的处理速度要比列表快,当程序中只对序列进行访问时,元组更具有优势。
  • 元组和列表都支持切片操作,但是元组只支持切片访问。
  • 元组可以作为字典的键值,而列表不行。
元组与列表之间的转换
  • 列表——>元组:tuple(list)
  • 元组——>列表:list(tuple)
2.字典
字典介绍

Python 的字典数据类型是基于 hash 散列算法实现的,采用 键值对 (key:value) 的形
式,根据 key 的值计算 value 的地址,具有非常快的查取和插入速度。它是一种 可变
对象 ,所以支持修改、插入、删除等操作。

字典的创建
· 用{}

创建字典可以用{}直接创建。其格式为:
name={key1:value1,key2:value2} 示例:

di={}
di_2={"name":"kirito", "age":"16"}
· 用dict()

使用dict()创建也有两种方法。
方法一:
格式为:dict(key1=value, key2=value2)

di=dict(name="kirito", age="16")

方法二:
格式为:dict([(key1, key2), (value1, value2])

di=dict([("name", "age"), ("kirito",  16)])
· 拓展:

map(func,*iterables):
将 iterables 里面的元素逐个传到 func 里面做处理。

  • 示例:
"""将list("12345")中的元素全部转为int类型。"""
li=list("12345")
print(li)
print(list(map(int,li)))
#==>["1", "2", "3", "4", "5"]
#==>[1,2,3,4,5]
  • 用map进行字典的创建:
ke=["name", "age"]
va=["kirito", 16]
def dic(k,v):
	return (k,v)
print(dict(map(dic,ke,va)))#==>输出为{'name': 'kirito', 'age': 16}

zip(iter1 [,iter2 […]]):
将iter1 iter2 中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。

  • 示例:
li_1=["name", "age"]
li_2=["kirito", 16]
print(list(zip(li_1,li_2)))#==>[('name', 'kirito'), ('age', 16)]
						   #看得出,name和kirito下标对应,age和16下标对应
  • 用zip进行字典的创建:
li_1=["name", "age"]
li_2=["kirito", 16]
print(dict(zip(li_1,li_2)))#==>{'name': 'kirito', 'age': 16}
字典的查、增、删、改
· 字典的查询

在Python中,字典使用key值来查询。其格式为:
dict[key] 示例:

di={"name":"kirito", "age":16}
print(di["name"])#==>输出为kirito
· 字典的增加

增加就是往字典插入新的键值对,直接进行赋值即可。其格式为:
dict[key]=value 示例:

di={"name":"kirito", "age":16}
print(di)#==>{"name":"kirito", "age":16}
di["sex"] = "男"
print(di)#==>{"name":"kirito", "age":16, "sex":"男"}
· 字典的修改

修改就是给原有的键赋予新的值。由于一个 key 只能对应一个值,所以,多次对一个 key 赋值,后面的值会把前面的值覆盖掉。
示例:

di={"name":"kirito", "age":16, "sex":"女"}
di["sex"] = "男"
print(di)#==>{"name":"kirito", "age":16, "sex":"男"}
di_2={"name":"kirito", "age":16, "sex":"女", "sex":"男"}
print(di_2)#==>{"name":"kirito", "age":16, "sex":"男"}
· 字典的删除

方法

功能

del dict[key]

删除指定key的元素

dict.pop(key)

删除指定key的元素(在字典中,pop必须传入key参数)

del dict

删除字典

dict.clear()

清空字典

示例:

di={"game":"刀剑神域", "name":"kirito", "age":16, "sex":"男"}
del di["game"]
print(di)#==>{'name': 'kirito', 'age': 16, 'sex': '男'}
di_2={"game":"刀剑神域", "name":"kirito", "age":16, "sex":"男"}
di_2.pop("game")
print(di_2)#==>{'name': 'kirito', 'age': 16, 'sex': '男'}
di_3={"game":"刀剑神域", "name":"kirito", "age":16, "sex":"男"}
del di_3
print(di_3)#==>报错了
di_4={"game":"刀剑神域", "name":"kirito", "age":16, "sex":"男"}
print(di_4.clear())#==>None
字典常见操作(熟悉)

dict.get(k[,d]) --> 返回指定键的值,如果值不在字典中,则返回default值。
dict.items() --> 以列表返回可遍历的(键, 值) 元组对
dict.keys() --> 以列表返回字典所有的键
dict.values() --> 以列表返回字典所有的值

问题:
问题一:
lis1 = ["name", "author",  "introduce"]
lis2 = ["NORWEGIAN WOOD", "Haruki Murakami", "balalalala…"]

将lis1与lis2以键值对的形式呈现。

Python数据类型实验结果分析_元组

回答:

lis1 = ["name", "author",  "introduce"]
lis2 = ["NORWEGIAN WOOD", "Haruki Murakami", "balalalala…"]
di=dict(zip(lis1,lis2))
print(di)#==>{'name': 'NORWEGIAN WOOD', 'author': 'Haruki Murakami', 'introduce': 'balalalala…'}
问题二:
Amy_info={'name':'amy','addr':'hunan', 'weight':90}

获取amy_info的key,value。

Python数据类型实验结果分析_赋值_02

回答:

Amy_info={'name':'amy','addr':'hunan', 'weight':90}
print(Amy_info.keys())#==>dict_keys(['name', 'addr', 'weight'])
print(Amy_info.values())#==>dict_values(['amy', 'hunan', 90])
问题三:

字节如何转字符串,字符串如何转字节?

Python数据类型实验结果分析_赋值_03


回答:

转换

方法

bytes——>str

bytes.decode()

str——>bytes

str.encode()


Python数据类型实验结果分析_键值对_04