元组与字典
一、元组
1、列表与元组的区别
列表是可变的,元组是不可变的,列表的可变是指可以添加、删除元素,元组不可变是指不可以增加新的、删除已有的元素
2、元组中的命令
2.1、索引与查找相同元素
index:查看元素的索引
count:查找有多少个相同元素
# index:查看元素的索引 # count:查找有多少个相同元素 list1=(5,45,3,53,5,79,3,5,35,6,7,76) print(list1.index(3)) print(list1.count(5))
元组里面的元素可以是字符串,也可以是数字,也可以是元组自己,也可以是列表
注意:当元组里只有一个元素时后面需要缀逗号
2.2、for循环
自定义index,num,输出结果也可以自定义
list1=(2,345,65,35,34,53) for index,num in enumerate(list1): if index==3 and num==35: print('ok')
2.3、查找元组中的元素——print(tuple[索引][索引])
[ ]中的数字为索引
# 获取元组里面的元素 tuple1=(2,345,65,35,"4,6,3,5") print(tuple1[4][2])
二、字典
1、字典特性
1.1、字典时无序的
1.2、字典是key-value的形式来存储的
2、字典的关键字为dict
代码为:dict={'name':'wp','age':'22"}
强制转换:print(dict{})
获取信息
# 获取所有的key; dict1={'name':'wp','age':22,'city':'xian'} for item in dict1.keys(): print(item) # 获取所有的value; for item in dict1.values(): print(item) # 对字典进行循环; for key,value in dict1.items(): print(key,':',value)
3、获取value的值(一般是使用第二种)
print(dict1.get("age")) print(dict1['age'])
4、两个字典合并:update()——list中的extend()
# 两个字典合并 dict={'name':'wp','age':22,'city':'xian'} dict1={'six':'girl'} dict.update(dict1) print(dict)
5、排序规则
2、如果是字符串,内部处理的思路是把字符串转为数字,然后和1的规则一样
3、如果是多个字符串,比如aa,ab,那么这个规则是:
A、aa和ab先比较第一个字符串,第一个相同,就比较第二个
B、比较第二个,比如是字符串转为数字,规则与1相同
4、把字符串转为数字,使用的内部函数是ord()
5、排序必须是相同的数据类型(当出现数字与字母比较时,将数字放在引号内就可以了)
6、字典排序的内部函数:sorted()
6.1、dict.items()实现了把字典循环输出key和value
6.3、根据key参数后的lambda后的item[0]来进行排序,也就是按照key来进行排序
print(dict(sorted(dict1.items(),key=lambda item:item[0])))
复杂结构中信息查询操作
7、获取所有信息后放置新的列表中
输出一列在循环中,是会增进式输出,只到所查询的信息显示完,但在循环外仅显示横向类的查询信息
8、实现字典的有序:从collections导入OrderedDict
from collections import OrderedDict
9、字符串与列表之间的转化
9.1、字符串与列表的转换
str1='Go,Java,Python' # 字符串转列表 str_list=str1.split(',') print(str_list) # 列表转字符串
list_str=','.join(str_list) print(list_str)
9.2、列表与元组的转换
字符串不能直接转为元组,但是可以通过列表转换
list1=[1,2,3] # 列表转为元组 list_tuple=tuple(list1) print(list_tuple) # 元组转为列表 tuple_list=list(list_tuple) print(tuple_list)
9.3、整型与字符串转换
age='22'
# 字符串转整型 str_int=int(age) print(str_int) # 整型转字符串 int_str=str(age) print(int_str)
9.4、列表与字典的转换
list3=['a','b','c'] # 列表转字典 list_dict=dict(enumerate(list3)) print(list_dict) # 字典转列表 dict_list=list(list_dict.items()) print(dict_list)
10、获取列表中最大值和最小值
# 获取一个列表中的最大值和最小值 list2=[99,0,9,100,34,6,23,49,8] list2.sort() print(list2[0],list2[-1])
三、练习——数据处理
1、输出全部的城市信息
2、输出除“全国”以外的城市信息
strs=[] for item in dict1['zpData']: if item['name']!='全国': strs.append(item['name']) print(strs)
3、输出除“全国”以外的城市拼音,并且不带/
strs=[] for item in dict1['zpData']: if item['name']!='全国': print(item['url'].replace('/',''))