python基础数据类型操作_python基础数据类型(三)

本文介绍了Python元组和字典两种基础数据类型。元组是不可变序列,介绍了其创建、与列表相同及不同的操作、与列表的区别和转换方法。字典基于hash散列算法,采用键值对形式,介绍了创建、查增删改操作、常见操作,并给出相关问题解答。

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()

排序:reversed()

反转:sorted()

加法及乘法

详情见另一篇博客:链接

元组中不允许的操作

不允许 修改 、新增 元素。(一级)

不允许 删除 某个元素(但可以删除整个元组)

注意:

虽然无法对元组进行修改,但是可以对元组重新赋值,达到修改元组的目的。

元组不具有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以键值对的形式呈现。

回答:

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。

回答:

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])

问题三:

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

回答:

转换方法bytes——>strbytes.decode()

str——>bytesstr.encode()

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值