Python基础之元组字典的操作

本文介绍了Python中的元组和字典的基本概念及其用法,包括元组的创建与解包、字典的键值对操作及遍历方法等内容。

元组

  • 元组简介:
    元组表现形式tuple,是一个不可变得序列(当我们希望数据不改变时,使用元组,其他情况基本上都是使用列表)
  • 元组的创建:
    使用()创建,或者使用tuple()。注:元组不是空元组至少有一个 逗号(,) 当元组不是空元组时括号可以省略
    a = (1,2,3,4)
    b = [1,2,3,4]
    c=tuple(b)
    d=(1,)
    print(type(a))
    print(type(c))
    print(type(d))
    
  • 元组的解包:
    元组解包指将元组当中的每一个元素都赋值给一个变量
    a = (1,2,)
    x,y=a
    print(x,y)
    b = (1,2,3,4)
    x,*y,z=b
    print(x,y,z)
    
  • 元组的操作方法除了和数据不可变之外,列表的操作方法基本适用于元组。

for循环和range函数

  • for循环:遍历列表
  • 语法:
语法
for 变量 in 序列(遍历的规则):
    代码块
else:
	代码块
  • range()函数:range(start, stop[, step])
    参数说明:

    • start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5)
    • stop: 计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5
    • step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)
for i in range(1,10,2):      #打印1-10的奇数
    print(i)


a=[1,2,3,4,5]   
for i in a:           #遍历列表
    print(i)

字典

  • 简介:
    字典属于一种新的数据结构称为映射(mapping),作用和列表类似,都是用来存储对象的容器

  • 特性:

    • 列表存储数据的性能好,但是查询数据的性能差,字典正好与之相反。
    • 在字典中每一个元素都有唯一的名字,通过这个唯一的名字可以找到指定的元素,这个唯一的名字我们称之为key 通过key可以快速查询value 也可以称之为值。
    • 字典我们也称之为键值对(key-value)结构。
    • 每个字典中都可以有多个键值对,而每一个键值对我们称其为一项(item)
    • 字典的值可以是任意对象 字典的键可以是任意的不可变对象(int str bool tuple…)
    • 每个字典中都可以有多个键值对,而每一个键值对我们称其为一项(item)。
    • 字典的键是不能重复的,如果出现重复的后面的会替换前面的。
    a = {"b":1,"c":2}
    print(type(a))
    d=[("a",1),("b",2),("c",3)]
    
    d1=dict(d)
    print(d1,type(d1))
    
    d2={"name":"电击小子","age":18,"age":22}  #如果key值重复,会替换前面的。
    print(d2)
    
  • 字典的使用

    • get(key[,default]) 根据键来获取字典的值。第二个参数可以指定一个默认值,当获取不到值的时候会返回默认值
    d2={"name":"电击小子","age":18,"gerder":"male"}
    print(d2["name"])   #如果key不存在,会报错。
    print(d2.get("name"))   #如果key不存在,则会反悔None
    
    • update() 将其他字典的key-value添加到当前的字典当中,如果key已存在,则会更新值。
    d2={"name":"电击小子","age":18,"gerder":"male"}
    d3 = {"b":1,"c":2}
    d2.update(d3)
    print(d2)
    
    • del 删除字典中的key-value
    • popitem() 删除字典最后的一个key-value 这个方法是有返回值的。删除之后它会将删除的key-value作为返回值返回
    • pop(key[,default]) 根据key删除自定中的value。第二个参数可以指定一个默认值,当获取不到值的时候会返回默认值
    d2={"name":"电击小子","age":18,"gerder":"male"}
    del d2["name"]
    print(d2)
    
    d2={"name":"电击小子","age":18,"gerder":"male"}
    del d2["name"]
    d2.popitem()
    print(d2.pop("x","不存在"))
    print(d2)
    
  • 遍历字典

    • keys() 该方法返回字典所有的key
    • values() 该方法返回一个序列 序列中保存有字典的值
    • items() 该方法会返回字典中所有的项 它返回一个序列,序列中包含有双值子序列 双值分别是 字典中的key和value
    d2={"name":"电击小子","age":18,"gerder":"male"}
    print(d2.keys())
    print(d2.values())
    print(d2.items())
    

练习
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"}]}}
print(a.get("data").get("result")[0].get("src"))      #获取python1
print(a.get("data").get("result")[1].get("src"))     #获取python2
print(a.get("data").get("result")[2].get("src"))     #获取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]
keys={"key1":[],"key2":[]}
for i in a:
    if i > 66:
        keys.get("key1").append(i)
    elif i <66:
        keys.get("key2").append(i)


print(keys)

3 现在有8位老师,3个办公室,要求将8位老师随机的分配到三个办公室中, 保证办公室内至少有一位老师。

import  random
a = [1,2,3,4,5,6,7,8]
list_1=[]
list_2=[]
list_3=[]
all_list=[list_1,list_2,list_3]
while 1:
     for j in a:
        random.choice(all_list).append(j)
     if len(list_1) != 0 and len(list_2) != 0 and len(list_3) != 0:
        break
print(list_1)
print(list_2)
print(list_3)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值