python中,我们经常用到元组和列表,本文主要总结了一下元组和列表的一些基本用法。
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
#作者:cacho_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 = 100
for i in range(1,8):
row = []
for j in range(1):
row.append(i)
row.append(f)
f =f +1
list.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()