python中,我们经常用到元组和列表,本文主要总结了一下元组和列表的一些基本用法。
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
#作者:cacho_37967865
#博客:https://blog.csdn.net/sinat_37967865
#文件:teamList.py
#日期:2018-05-06
#备注:本文主要介绍了python中元组、列表和字典的相关知识,元组是不可以更改的,列表和字典是可以更改的。
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''from collections import Counter #引入Counter
import json# 元组的相关信息
def tuple_info():x1 = (5, 6, 2, 6)x = 5, 6, 2, 6 # 或者这样写# 不管是元组还是列表,访问元素都是从0这个索引开始的print(x[0])print(x1[1])# 2.列表相关信息,相当于java中的数组
def list_info():y = [5, 6, 2, 6]y1 = [1,1]print(y[0])for bian_li in y:print(bian_li)for fanxiang_bian_li in reversed(y): # 反向遍历一维列表所有数据print(fanxiang_bian_li)y.append(2)print("append()方法,就是在列表尾部添加元素:", y)y.insert(2, 99)print("insert()方法,在列表索引2位置即第三个位置添加元素:", y)y.pop()print("pop()方法,在列表删除最后一个元素:", y)y.remove(2)print("remove(数值)方法,在列表删除元素,如果有多个相同数值,默认删除第一个:", y)y.remove(y[1])print("remove(索引)方法,在列表删除索引元素,第一个:", y)y.reverse()print("reverse()方法,对列表元素进行翻转:", y)y.extend(y1)print("extend(列表)方法,对y1列表合并到y:", y)z = [5, 6, 2, 6]print("查找列表某个元素出现的次数:", z.count(6))print("从左边索引到右边索引但是不包括右边索引,即第1个到第4个:", z[0:4])print("倒数第一个数字,-2代表倒数第二:", z[-1])print("查找列表某个元素的索引,如果有多个值,默认找第一个元素,如果找不到元素就报错:", z.index(6))z.sort() # reverse = True 降序,reverse = False 升序(默认)print("sort()方法,元素值从小到大排序:", z)# 判断列表是否有重复元素,先转化为集合类型去除重复数据,再对比列表和集合的长度if len(z)!=len(set(z)):print("列表Z含有重复元素")print("去除列表重复元素得到集合set(z):",type(set(z)))print('集合set类型:', set(z))b = dict(Counter(z))print('列表每个元素的个数统计:',b)print({key: value for key, value in b.items() if value > 1}) # 展现重复元素和重复次数else:print("列表Z不含有重复元素")# 判断列表是否包含或者不包含某个元素if 5 in z:print("列表中包含元素5")if 7 not in z:print("列表中不包含元素7")# 二维列表x2 = [[5, 6], [6, 7], [7, 2], [2, 5], [4, 9]]print("二维列表第一个子列表:[5,6]>>>", x2[0])print("二维列表第一个子列表中第二值:6>>>", x2[0][1])# 三维列表x3 = [[[5, 7], [6, 6]], [[6, 6], [7, 8]], [7, 2], [2, 5]]# 相当于y3 = [[[5, 7], [6, 6]],[[6, 6], [7, 8]],[7, 2],[2, 5]]print("3维列表第2个二维列表中第1个子列表第1个值:6>>>", x3[1][0][0])print("3维列表第4个子列表第1个值:2>>>", y3[3][0])# 如果print(y3[3][0][0])报错,因为3维列表第4个是一维列表# 对二维空列表赋值list = []f = 100for i in range(1,8):row = []for j in range(1):row.append(i)row.append(f)f =f +1list.append(row)print("二维列表赋值:",list)# 遍历二维列表for i in range(len(list)):print(list[i][0])print(list[i][1])def dict_info():dict_list ={'base_resp': {'ret': 0,'errmsg': 'ok'},'enabled': 1,'elected_comment': [{'id': 1,'nick_name': '十语荐书','content': '今日得到:','create_time': 1544136635,'content_id': '344222885537120675','like_num': 108,'is_from_friend': 0,'reply': {'reply_list': []},}],'friend_comment': [],'elected_comment_total_cnt': 14,'only_fans_can_comment': False}print("dict_list为字典类型:", type(dict_list))print("获取字典里面的value值(值):",dict_list['base_resp']['errmsg'])elected_comment = dict_list['elected_comment']print("获取字典里面的value值(列表):",elected_comment)for comment in elected_comment:print("另外一种获取字典里面的value值(值):",comment.get('content_id'))# 1.遍历字典key值,value值:一般为字符串,如果字典为复杂情况, 这个时候会出现字符串,列表等类型for key in dict_list:print("遍历字典key+value值1:", key, dict_list[key])for key in dict_list.keys():print("遍历字典key+value值2:", key, dict_list[key])for value in dict_list:print("遍历字典key+value值3:", value, dict_list[value])for key, value in dict_list.items():print("遍历字典key+value值4:", key, value)for (key, value) in dict_list.items():print("遍历字典key+value值5:", key, value)# 2.遍历字典项,得到的是元组类型print(dict_list.items())print("dict_list.items()为dict_items类型:", type(dict_list.items()))for item in dict_list.items():print("遍历字典项得元组:", item)print("这里的item为元组类型:", type(item))# dict转换json格式(str)# indent:缩进空格式; sort_keys=True:排序,默认不排序; ensure_ascii:默认输出为ASCII字符,False可以输出中文;# separators 去掉‘,’ ‘:’后面的空格; skipkeys:可以跳过那些非string对象当作key的处理dict_json = json.dumps(dict_list, indent=4, ensure_ascii=False, sort_keys=True, separators=(',', ':'),skipkeys=True)print("dict_json为str类型:", type(dict_json), dict_json)if __name__ == '__main__':#tuple_info()#list_info()dict_info()