找回密码
 立即注册

推荐阅读

  • 便民服务
  • 关注我们
  • 社区新手
元组
1、定义:()
2、类型:tuple
3、元组是不可变的(定义好之后不能够直接去修改元组中的元素)
a=()               #定义一个空元组
print(type(a))     #打印元组类型
b=(1,2,3)          #定义一个空元组
print(type(b))     #打印元组类型
c=(1,)          #定义一个空元组
print(type(c))     #打印元组类型   
注意:只有一个元素的时候后面要加要加一个逗号!!!
           如果不加逗号,原始元素是什么类型它就是什么类型。
4、元组中常见的操作
元组转换为列表
a=(1,2,3,4,5,6)     #定义一个空元组
print(type(a))      #  打印元组类型
a1=list(a)          #通过list将元组转换为列表
print(type(a1))     #   打印列表类型
a1.append("hello")  #在列表末尾添加元素
print(a1)          #[1, 2, 3, 4, 5, 6, 'hello']   打印列表元素
列表转换为元组
a2=tuple(a1)       #通过tuple将列表转换为元组
print(type(a2))    #     打印元组类型
print(a2)          #(1, 2, 3, 4, 5, 6, 'hello')打印元组元素
数据类型转换
字符串转换列表
a="123"             #定义一个字符串
a1=list(a)          ##通过list将字符串转换为列表
print(type(a1))     # 打印列表类型
print(a1)           #['1', '2', '3'] 打印列表元素
字符串转换为元组
a2=tuple(a)         #通过tuple将字符串转换为元组
print(type(a2))     #打印元组类型
print(a2)           #('1', '2', '3')打印元组元素
元组转换为字符串
a=(1,2,3)             #定义一个元组
print(type(a))        #打印元组类型
a1=str(a)             #通过str将元组转换为字符串
print(type(a1))       #打印字符串类型

python中列表和元组的区别:(面试)
1、类型不同:列表是list,元组是tuple
2、定义不同:列表是通过中括号定义,元组是通过小括号定义
3、列表定义后是可以随意的增删改(元素不受保护)
     元组定义后是不能随意进行增删改(元素受到保护)
4、元组相对更安全(因为元组定义后不能直接修改,所以比列表安全)

想给元组中进行增删改如何实现?(面试)
可以把元组先转换成其他数据类型,再调用其他类型中的方法来实现

元组也是支持切片操作的
a=(1,2,3,4,5,6,"hello") #定义一个元组
#print(a[6])             #hello    通过索引值取对应元素值
print(a[1:4:2])          #(2, 4)   通过切片取对应元素值

字典
1、定义:{}大括号,也称为花括号
2、键值对:键是唯一,值不唯一
     键值对用冒号分割,‘name’:"zhangsan"(非整型数据要加引号)
    存在多个键值对用逗号进行分割
3、类型:dict
a={}                    #定义一个空字典
print(type(a))          #   打印字典类型
a={'name':"zhangsan"}     #定义一个字典,里面有一个键值对
print(a)                 #{'name': 'zhangsan'}   打印
a={'name':""}    #定义一个字典,只有键没有值     
print(a)
(注意,值为空时也要打引号!!1否则异常)
a={'name':"zhangsan",'name':123}   #定义一个字典,多个键值对之间用逗号隔开,整型可以不加引号
a['scroe']=100#设置一个键值对
print(a)            #{'name': 123, 'scroe': 100}
取出字典中的键和值
键:keys 值:values
d2 = {'name':"zhangsan","age":18}
key =d2.keys()#取出当前字典中的所有键
print(key)#dict_keys(['name', 'age'])
val =d2.values()#取出当前字典中的所有值
print(val)#dict_values(['zhangsan', 18])
获取指定键的值
d2 = {'name':"zhangsan","age":18}
d3=d2["name"]#获取name这个键对应的值
print(d3)#zhangsan

setdefault 设置键值对
注意:此方法执行后会进行判断,如果发现字典中没有此键则会进行添加键值对;
如果发现字典中有此键则不会执行替换
d2 = {'name':"zhangsan","age":18}
d2.setdefault("scroe",100)#设置键值对
print(d2)#{'name': 'zhangsan', 'age': 18, 'scroe': 100}
d2.setdefault('age',20)#设置已存在的键值
print(d2)#{'name': 'zhangsan', 'age': 18, 'scroe': 100}
删除字典中的键值
d2 = {'name':"zhangsan","age":18}
del d2#删除整个字典
print(d2)#抛异常提示字典不存在
d2 = {'name':"zhangsan","age":18}
del d2["name"]#删除键和对应键的值
print(d2)#{'age': 18}
遍历字典
for...in...
st="helloword"
for i in st:
      print(i,st.count(i))

d2["age"]=20#如果原字典中有此键,则会执行替换
print(d2)#{'name': 'zhangsan', 'age': 20, 'scroe': 100}

pop(key)函数,删除指定键并返回删除的值
a={'name':"zhangsan",'age':123}  #定义一个字典
b=a.pop('name')                 #删除name 这个键,并返回对应的值
print(b)                        #zhangsan
print(a.pop('name'))              #zhangsan

clear()清空字典所有项
a={'name':"zhangsan",'age':123}  #定义一个字典
a.clear()                       #把这个字典中所有的值清空,返回一个空字典
print(a)                        #{}
get()方法获取对应键的值
#当获取的键不存在时,返回none
d2 = {'name':"zhangsan","age":18}
d3=d2.get("name")
print(d3)#zhangsan
d4=d2["name"]
print(d4)#zhangsan
d5=d2.get("scroe")#指定不存在的键取值
print(d5)#None
d6 =d2["scroe"]#指定不存在的键进行取值
print(d6)#抛异常
给具体的键指定值
d2 = {'name':"zhangsan","age":18}
d2 ={}.fromkeys(["name","age"])#不指定值
print(d2)#{'name': None, 'age': None} 默认为none
d2 ={}.fromkeys(["name","age"],"xiaoliu")#指定值
print(d2)#{'name': 'xiaoliu', 'age': 'xiaoliu'}

python2:has_key函数检查字典是否含有指定的数,返回布尔值
python3:_contains_函数检查字典是否含有指定的数,返回布尔值
注意:python3中不使用has_key
a={'name':"zhangsan",'age':123}  #定义一个字典
print(a.contains("name"))    #True
print(a.contains("score"))    #False

popitem函数随机返回并删除字典中的键值对(一般删除末尾对)
如果字典已经为空,却调用了此方法,就报出KeyError异常
a={'name':"zhangsan",'age':123}  #定义一个字典
print(a.popitem())               #('age', 123)      默认删除最后的并返回
print(a)                         #{'name': 'zhangsan'}

update函数把两个字典拼接合成一个新的
a={'name':"zhangsan",'age':123}  #定义一个字典
a1={'score':85}                  #定义一个字典
a.update(a1)                     #将a1合并到a中
print(a)                        #{'name': 'zhangsan', 'age': 123, 'score': 85}
a={'name':"zhangsan",'age':123}  #定义一个字典
a1={'name':"xiaoshu"}           ##定义一个字典
a.update(a1)                   #将a1合并到a中
print(a)                      #{'name': 'xiaoshu', 'age': 123}
#注意:两个字典里有相同的键时,会执行替换操作

字典转换元组
a={'name':"zhangsan",'age':123}  #定义一个字典
print(type(a))                  #
a1=tuple(a)                     #通过tuple将字典转化为元组
print(type(a1))                 #
print(a1)                      #('name', 'age')   字典转化为元组后之后,只留下键
#注意:元组不能直接转化为字典
字典转列表
a={'name':"zhangsan",'age':123}  #定义一个字典
a1=list(a)                       #通过list将字典转化为列表
print(type(a1))                 #
print(a1)                      #['name', 'age']   字典转化为列表后之后,只留下键
字符串转字典
a="{'name':'zhangsan','age':123}"  #定义一个字典类型的字符串
print(type(a))                     #
a1=eval(a)
print(type(a1))                   #
print(a1)                         #{'name': 'zhangsan', 'age': 123}
列表转字典
list1=["name","age"]
list2=['zhangsan',18]
a= zip(list1,list2)#把两个列表连接,把索引值相同的为一个整体
for i in a:
print(i)#不能直接查看结果,需要遍历
print(type(i))
print(dict(a))#{'name': 'zhangsan', 'age': 18}#通过字典的类型转换形成一个字典
print(type(a))#
利用for in rang 将两个列表转换为字典
list1=["name","age"]
list2=['zhangsan',18]
di1={}
for i in range(len(list1)):
di1[list1]=list2
print(type(di1))
print(di1)

集合:没有切片操作
集合分为可变集合和不可变集合
可变集合:set
不可变集合:frozenset
相同点:都能够去重
不同点:可变集合去重可以实现增删改
              不可变集合去重后不可以实现增删改
#可变集合
a=[1,2,3,4,1]        #定义一个列表
a1=set(a)           #可变集合去重
print(a1)           #{1, 2, 3, 4}
a1.add("xiaoshu")  #添加字符串
print(a1)         #{1, 2, 3, 4, 'xiaoshu'}
#不可变集合
a=[1,2,3,4,1]        #定义一个列表
a1=frozenset(a)     #不可变集合去重
print(a1)           #frozenset({1, 2, 3, 4})
#无法调用add添加字符
#可变集合
a =[1,2,3,4,1]#定义一个列表
a1= set(a)#可变集合去重
print(a1)#{1, 2, 3, 4}
a1.add("xiaoliu")#添加字符
print(a1)#{1, 2, 3, 4, 'xiaoliu'}
#a.clear()#清除集合中的内容
print(a)#[]
a1.pop()#随机移除一个元素
print(a1)
a1.remove(4)#删除集合中的元素
a2 =a1.copy()#复制集合
print(a1)#{1, 2, 3, 'xiaoliu'}
print(a2)#{1, 2, 3, 'xiaoliu'}

分享至 : QQ空间
收藏

0 个回复

您需要登录后才可以回帖 登录 | 立即注册