量化分析(数据结构list,dict)

# -*- coding: utf-8 -*-

"""
程序开头注释
author: zby
date: 2020年07月17日
功能:介绍python的常用内置数据结构,如list、dict等,
"""

# =====list介绍
# 使用[]中括号就可以新建一个数组。
list_var = []  # 这是一个空list
print(list_var, type(list_var))

# list是具有顺序的一组对象,其中的元素不需要是同类型
list_var = [1, '2', 3, 4.0, 5, 6, 'seven', [8], '九']  # list举例,其中包含了整数、小数、字符串、数组
print(list_var)

# =====list常见操作:索引,选取list中的某个元素
list_var = [1, '2', 3, 4.0, 5, 6, 'seven', [8], '九']  # list举例
print(list_var[0])  # 输出排在第1个位置的元素。位置的计数是从0开始的。
print(list_var[3])  # 输出排在第4个位置的元素。
print(list_var[8])  # 输出排在第9个位置的元素。也就是最后一个元素。
print(list_var[-1])  # 输出最后一个元素的另外一种方式。
print(list_var[-2])  # 输出最后第二个位置的元素。
# print (list_var[9])# 超出长度会报错 IndexError: list index out of range
# print (list_var[-10])# 超出长度会报错 IndexError: list index out of range
list_var[3] = 100  # 可以根据索引,直接修改list中对应位置的元素
print(list_var)

# =====list常见操作:切片,选取list中的一连串元素
list_var = [1, '2', 3, 4.0, 5, 6, 'seven', [8], '九']  # list举例
print(list_var[3:8])  # list[a:b],从第a个位置开始,一直到第b个位置之前的那些元素,前闭后开
print(list_var[:4])  # list[:b],从头开始,一直到第b个位置之前的那些元素
print(list_var[3:])  # list[a:],从第a个位置开始,一直到最后一个元素
print(list_var[1:7:3])  # list[a:b:c],每c个元素,选取其中的一个

# =====list常见操作:两个list相加
list_var1 = [1, '2', 3, 4.0, 5]
list_var2 = [6, 'seven', [8], '九']
print(list_var1 + list_var2)  # 两个list相加

# =====list常见操作:判断一个元素是否在list当中
list_var = [1, '2', 3, 4.0, 5]
print(1 in list_var)  # 判断1元素,是否在list_var中出现
print(100 in list_var)  # 判断100元素,是否在list_var中出现

# =====list常见操作:len,max,min
list_var = [1, 2, 3, 4, 5]
print(len(list_var))  # list中元素的个数,或者说是list的长度
print(len([]))  # 空list的长度是?
print(max(list_var))  # 这个list中最大的元素,
print(min(list_var))  # 最小的元素

# =====list常见操作:删除其中的一个元素
list_var = [1, 2, 3, 4, 5]
del list_var[0]  # 删除位置0的那个元素
print(list_var)

# =====list常见操作:如何查找一个元素的在list中的位置
list_var = [3, 5, 1, 2, 4]  # 如何才能知道1这个元素,在list中的位置是什么?

# =====list常见操作:append,在后方增加一个元素
list_var = [1, '2', 3, 4.0, 5]
list_var.append(6)
print(list_var)
list_var.append(['seven', [8], '九'])
print(list_var)

# =====list常见操作:两个list合并
list_var = [1, '2', 3, 4.0, 5]
list_var.extend([6, 'seven', [8], '九']) # print(list_var.extend([6, 'seven', [8], '九'])返回None
print(list_var)

# =====list常见操作:逆序、排序、
list_var = [3, 5, 1, 2, 4]
list_var.reverse()
print(list_var)
list_var = [3, 5, 1, 2, 4]
list_var.sort()
print(list_var)

# =====list常见操作:range函数
# range函数用于快速创建[0,1,2,3,4,5,6……]这样的list,结合for循环
print(range(5))  # range(a),对于[0,1,2,3……]这个数组,取前a个元素
print(range(1, 5))  # range(a, b),对于[0,1,2,3……]这个数组,取从第a个位置的元素开始,到第b个位置元素之前的那个元素
print(range(1, 10, 3))  # range(a, b, c), 每c个元素,选取其中的一个

# =====dict介绍
# 使用{}大括号就可以新建一个dict。
dict_var = {}  # 这是一个空dict
print(dict_var, type(dict_var))

# 具有一系列成对的对象。一个叫做key,一个叫做value。其中的元素(包括key和value)不需要是同类型
dict_var = {'sh600000': '浦发银行',
            'sz000002': '万科A',
            300001: '特锐德'}  # 其中'sh600000'、'sz000002'、300001就是key,'浦发银行'、'万科A'、'特锐德'就是相对应的value。
print(dict_var)

# 字典是无顺序,key不可重复
# print (dict_var[0])# 因为没有顺序,所以dict_var[0]并不能取出第0个位置的元素,此处会报错。


# =====dict常见操作:根据key的值,取相应的value的值
print(dict_var['sh600000'])  # 获取'sh600000'这个key对应的value
print(dict_var.get('sh600000'))  # 效果同上,建议使用,key不存在返回None

# =====dict常见操作:增加、修改一对key:value
dict_var['sh000001'] = '上证指数'
print(dict_var)
dict_var['sh000001'] = '上证综合指数'
print(dict_var['sh000001'])

# =====dict常见操作:判断一个key是不是在dict里面
print('sh600000' in dict_var)

# =====dict常见操作:输出一个dict中所有的key和value
print(dict_var.keys())  # 输出所有的key
print(dict_var.values())  # 输出所有的value

# =====字符串转义
print('what is wrong')  # 如何输入what's wrong
print('what\'s wrong\t')  # 使用\对特殊字符进行转义。转义也可以用于表达不可见字符,例如tab符号:\t。
print('\\')  # 如果要表达\本身,也需要转义,写为\。
print(r'what\'s wrong')  # 在字符串的开始加r(Raw String),使得字符串中不发生转义。

# =====unicode字符串 py2,py3不同
print('中国', type('中国'))
print(u'中国', type(u'中国'))
print('中国' == u'中国')

# =====字符串常见操作:字符串相加,相乘
stock_code1 = 'sh600000'
stock_code2 = 'sh600001'
print(stock_code1 + ', ' + stock_code2)  # 字符串可以直接相加
print(stock_code1 * 3)  # 字符串可以乘以整数
print('*' * 30)

# =====字符串常见操作:startswith、endswith、
stock_code = 'sh600000'
print(stock_code.startswith('sh'))  # 判断字符串是否是以'sh'开头
print(stock_code.startswith('s'))
print(stock_code.startswith('sz'))

# =====字符串常见操作:判断
stock_code = 'sh600000'
print('sh' in stock_code)  # 判断字符串中是否包含'sh'
print('sz' in stock_code)

# =====字符串常见操作:替换
stock_code = 'sh600000'
print(stock_code.replace('sh', 'sz'))  # 将字符串中的'sh'替换成'sz'
print('sh600000来自sh'.replace('sh', 'sz'))  # 会替换所有的sh

# =====字符串常见操作:split
stock_code = 'sh600000, sh600001, sh600002, sh600003'
print(stock_code.split(', '))
print(stock_code.split(', ')[0])
print(stock_code.split('sh'))
# 逆操作
stock_code_list = ['sh600000', 'sh600001', 'sh600002', 'sh600003']
print(', '.join(stock_code_list))

# =====字符串常见操作:strip
stock_code = '  sh600000  '
print(stock_code)
print(stock_code.strip())  # 去除两边的空格

# =====字符串的选取:把字符串类list操作
stock_code = 'sh600000'
print(stock_code[0])
print(stock_code[:2])
print(stock_code[2:])
print(len(stock_code))

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,132评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,802评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,566评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,858评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,867评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,695评论 1 282
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,064评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,705评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,915评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,677评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,796评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,432评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,041评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,992评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,223评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,185评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,535评论 2 343