小甲鱼:Python学习笔记002_数组_元组_字符串
创建普通数组
>>> member=["山东黄金","九阳股份"]
>>> member
['山东黄金', '九阳股份']
创建混合数组(数组中存放各种类型的数据)
>>> mix=[1,2.3,"520",["Haha"]]
>>> mix
[1, 2.3, '520', ['Haha']]
创建一个空数组
>>> empty=[]
>>> empty
[]
向数组中添加元素
append(), 追加一个元素到数组末尾
extend(), 用一个列表扩展另一个列表,也是将元素追加到末尾
insert(), 将一个元素插入到数组指定的位置
>>> member.append("深圳机场")
>>> len(member)
3
>>>
>>> member.extend(["招商轮船","平安银行"])
>>> member
['山东黄金', '九阳股份', '深圳机场', '招商轮船', '平安银行']
>>> len(member)
5
>>> member.insert(2,"沱牌舍得")
>>> member
['山东黄金', '九阳股份', '沱牌舍得', '深圳机场', '招商轮船', '平安银行']
>>>
获取数组中某个元素
>>> member[1]
'九阳股份'
>>>
>>> member[1] = "九阳股份-九阳神功"
>>> member
['山东黄金', '九阳股份-九阳神功', '沱牌舍得', '深圳机场', '招商轮船', '平安银行']
>>>
删除数组中的元素
remove(),删除指定名称元素, 如果指定的值不存在,会报错
del ,它是一个语句,不是方法,可以删除整个数组,也可以删除指定位置的元素
pop() ,从数组中删除最后一个元素,并返回这个值,也可以去除指定下标的元素
>>> member.remove("山东黄金")
>>> member
['九阳股份-九阳神功', '沱牌舍得', '深圳机场', '招商轮船', '平安银行']
>>> del member[1]
>>> member
['九阳股份-九阳神功', '深圳机场', '招商轮船', '平安银行']
>>>
>>>
>>> last = member.pop()
>>> member
['九阳股份-九阳神功', '深圳机场', '招商轮船']
>>> last
'平安银行'
>>> item=member.pop(1)
>>> member
['九阳股份-九阳神功', '招商轮船']
>>> item
'深圳机场'
>>>
列表分片: 可以实现一次性获取多个元素
>>> member[0:1] # 这个是拷贝出来的内容,原数组不变
['九阳股份-九阳神功']
>>> member
['九阳股份-九阳神功', '招商轮船']
>>>
>>> member[:1] #下标为1之前的都获取到
['九阳股份-九阳神功']
>>> member[1:] #从下标为1开始获取
['招商轮船']
>>> member[:] #获取整个数组
['九阳股份-九阳神功', '招商轮船']
>>>
两个冒号是每隔多少个取
[1::2],从下标1开始,每隔2个取值
[::2],从下标0开始,每隔2个取值
典型的就是取100以内的奇偶数
# 列表切片例子
# 查找列表当中‘yang’元素出现的位置
name_list = ['huang','yang','zhang','li','qian','yang','hu','gao']
first_pos = 0
#统计‘yangw’出现的次数,根据次数循环找位置
for i in range(name_list.count('yang')):
#下一次查找的子列表
new_list = name_list[first_pos:]
# 下一次查找的位置
next_pos = new_list.index('yang') + 1
print ('Find Position:',first_pos + new_list.index('yang'))
first_pos += next_pos
'''
#1 new_list = ['huang','yang','zhang','li','qian','yang','hu','gao']
next_pos = 1 + 1
first_pos = 0 + 2
#2 new_list =['zhang','li','qian','yang','hu','gao']
next_pos = 3 +1
first_pos = 3 + 4
'''
元素在不在数组中, 可以使用 in 或 not in
>>>
>>> "awei" not in member
True
>>> "招商轮船" in member
True
>>>
#指定元素出现的次数
>>> member.count("haha")
0
>>> member.count("招商轮船")
1
# 指定元素在数组中的位置
>>> member.index("招商轮船")
1
>>>
翻转数组
>>> member.reverse()
>>> member
['招商轮船', '九阳股份-九阳神功']
>>>
排序 sort ,它是一种归并排序
>>> member.sort()
>>> member
['九阳股份-九阳神功', '招商轮船']
>>>
>>> member.sort(reverse=True)
>>> member
['招商轮船', '九阳股份-九阳神功']
>>>
再次强调,
>>> member1=member[:] #是一种数组的拷贝
>>> member1
['招商轮船', '九阳股份-九阳神功']
>>> member2=member #不是拷贝,引用着同一个数组
>>> member2
['招商轮船', '九阳股份-九阳神功']
>>> member.sort()
>>> member1
['招商轮船', '九阳股份-九阳神功']
>>> member2
['九阳股份-九阳神功', '招商轮船']
>>>
元组tuple和数组是非常相近的,只是元组是不能被修改的
对于元组来说, 逗号是关键,小括号不一定非要有
>>> items=("九阳","大船","平安","黄金")
>>> items
('九阳', '大船', '平安', '黄金')
>>> items[2]
'平安'
>>> items[:1]
('九阳',)
>>> items[2:]
('平安', '黄金')
>>> items2=items[:]
>>> items2
('九阳', '大船', '平安', '黄金')
>>>
元组能不能变相改变呢,答案是可以的.
>>> items2 = items2[:1]+("白云山",)+items2[1:]
>>> items2
('九阳', '白云山', '大船', '平安', '黄金')
>>>
>>> str1= 'cxn ,wo yao cao ni !'
>>> str1
'cxn ,wo yao cao ni !'
>>> #取字符串的某个字符,直接跟数组一样,使用下标方式
>>> str1[1]
'x'
>>> #它也像元组一样,可以使用分片
>>> #它跟元组一样,也是不可改变的,我们可以利用切片的方式改变
>>> str2 = str1[:5]+"我插入进来了啊" + str1[5:]
>>> str2
'cxn ,我插入进来了啊wo yao cao ni !'
>>>
>>> #字符串的方式有很多
>>>
>>> # 1. 将字符串第一个字母改为大写
>>> str3="wo xiang ri nv ren !";
>>> str3.capitalize()
'Wo xiang ri nv ren !'
>>> str3
'wo xiang ri nv ren !'
>>>
>>> # 把整个字符串的所有字符改为小写
>>>
>>> str4=" I LIKE YOU"
>>> str4.casefold()
' i like you'
>>>
>>> #字符串居中,并使用空格填充至长度width的新字符串
>>>
>>> str4.center(20)
' I LIKE YOU '
>>>
>>> #返回sub在字符串中出现的次数,start end表示范围(可选)
>>> str4.count("e")
0
>>> # 对字符串进行编码
>>> str4="杨伟"
>>> str4.encode(encoding="utf-8",errors="strict")
b'\xe6\x9d\xa8\xe4\xbc\x9f'
>>>
>>> # 检查字符串是否以sub字符串结束,返回 True | False
>>>
>>> str4.endswith("伟")
True
>>> # endswith(sub [,start] [,end])方法
>>>
>>>
>>> #把字符串中的 tab符号(\t)转换为空格,如果不指定参数,默认空格是8
>>> #expandtabs([tabsize=8])
>>> str4="I\tlove\tyou"
>>> str4.expandtabs()
'I love you'
>>>
>>> #检测sub是否包含在字符串中,如果有返回索引值,否则返回-1
>>> #find(sub [,start] [,end])
>>> str4.find("you")
7
>>> #index(sub [,start][,end]),与find一样,不过如果sub不在sring中会抛异常
>>> str4.index("you")
7
>>> str4.index("ni")
Traceback (most recent call last):
File "<pyshell#55>", line 1, in <module>
str4.index("ni")
ValueError: substring not found
>>>
>>> # 有很多判断字符串的方法,以 is开头,这么不再说明
>>>
>>> # join(sub) 以字符串作为分隔符,插入到sub中所有的字符之间
>>> str4.join("123")
'1I\tlove\tyou2I\tlove\tyou3'
>>> # 使用join比起 字符串+的操作更节约内存开销
>>> a = ['a','b','c']
>>>
>>> b = ''.join(a)
>>> b
'abc'
>>>
>>> # lower()小写 , upper() 大写
>>> # ljust(width) 返回一个左对齐的字符串,并使用空格填充至width长度
>>>
>>> str4.ljust(20)
'I\tlove\tyou '
>>>
>>> #lstrip() 去掉字符串左边的所有空格
>>> str4=" 123456"
>>> str4
' 123456'
>>> str4.lstrip()
'123456'
>>>
>>> #rstrip() 去掉字符串右边的所有空格
>>>
>>> #partition(sub) 找到子字符串sub,把字符串分成3个元组(pre_sub,sub,fol_sub),r如果字符串中不包含sub,返回('原字符串',"","")
>>>
>>> str5=" ni hao ma ,qinqin"
>>> str5.partition("qin")
(' ni hao ma ,', 'qin', 'qin')
>>>
>>> # replace(old,new,[,count]) 字符串替换,如果指定count次,则替换不超过count次
>>>
>>> str5.replace("qin","exin")
' ni hao ma ,exinexin'
>>>
>>> ##有一些以r开始的方法,表示从右边开始查找等等,不再赘述
>>>
>>> #split(sep=None,maxsplit=-1) 不带参数默认以空格切分,返回数组
>>> str5.split()
['ni', 'hao', 'ma', ',qinqin']
>>> str5.split("q")
[' ni hao ma ,', 'in', 'in']
>>>
>>> # 去掉字符串前后空格
>>> #strip([chars]), chars参数可以定制删除的字符
>>>
>>> str5.strip();
'ni hao ma ,qinqin'
>>>
>>> #swapcase() 翻转字符串的大小写
>>>
>>># max(str) max(str) , 寻找字符串中的最大字符 min(str), 寻找字符串中的最小字符
>>> #字符串格式化
>>> #1,使用位置参数表示
>>> "{0} love {1}.{2}".format("I","fishc","com")
'I love fishc.com'
>>> #关键字参数 # 关键字参数必须指定谁的值是多少
>>> "{a} love {b}.{c}".format(a="I",b="fishc",c="com")
'I love fishc.com'
>>>
>>> # 位置参数和关键字参数也可以一起使用,但是位置参数必须在前面
>>>
>>> "{0} love {b}.{c}".format("I",b="fishc",c="com")
'I love fishc.com'
>>>
>>> #{}也是可以被转义的,它使用{}转义
>>>
>>> print("{{0}}".format("不打印"))
{0}
>>>
字符串格式化符号含义及转义字符含义
http://bbs.fishc.com/thread-39140-1-1.html
(出处: 鱼C论坛)
>>> # 字符串,数组,元组 都是可迭代对象
>>> # list() 是将可迭代的对象转换为数组
>>> a="12345"
>>> list(a)
['1', '2', '3', '4', '5']
>>> # tuple([iterable]),把一个可迭代对象转换为元组
>>> # str(obj) ,把一个对象转换为字符串
>>>
>>> # len(sub), 返回参数的长度
>>>
>>> len(a)
5
>>> #max(),返回序列或者参数集合中的最大值
>>> max(list(a))
'5'
>>> numbers=(1,4,-5,10)
>>> max(numbers)
10
>>> #min(), 与max()使用方式一样
>>> # 使用max()、min()方法,序列(数组、元组、字符串)的类型必须是一样的
>>>
>>> b=["1","2","3",4]
>>> max(b)
Traceback (most recent call last):
File "<pyshell#22>", line 1, in <module>
max(b)
TypeError: unorderable types: int() > str()
>>>
>>> b.pop()
4
>>> max(b)
'3'
>>> # sum(iterable[,start=0]) ,返回序列iterate和可选参数start的总和
>>>
>>> # 迭代器中也必须是相同类型,才能做相加操作
>>>
>>>
>>> # sorted(),排序
>>> sorted(numbers)
[-5, 1, 4, 10]
>>> # reversed() ,它返回的是迭代器对象
>>> reversed(numbers)
<reversed object at 0x02168ED0>
>>> list(reversed(numbers))
[10, -5, 4, 1]
>>>
>>> # enumerate(),枚举列表,结果是键值对形式组成的数组
>>>
>>> enumerate(numbers)
<enumerate object at 0x021710D0>
>>> list(enumerate(numbers))
[(0, 1), (1, 4), (2, -5), (3, 10)]
>>>
>>> # zip()方法,还是看例子就明白了
>>> a1 = [1,2,3,4,5,6]
>>> a2 = [3,4,5,6]
>>> zip(a1,a2)
<zip object at 0x021711C0>
>>> list(zip(a1,a2))
[(1, 3), (2, 4), (3, 5), (4, 6)]
>>>
元组与列表的区别:
元组是不可改变的,列表是可以改变的;
元组和列表之间是可以相互转换的, 元组转成列表使用 list(), 列表转成元组tuple()
元组一般就使用两个方法 index()和count() 方法.
小甲鱼:Python学习笔记002_数组_元组_字符串的更多相关文章
- python学习笔记(2)--列表、元组、字符串、字典、集合、文件、字符编码
本节内容 列表.元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码 1.列表和元组的操作 列表是我们以后最长用的数据类型之一,通过列表可以最方便的对数据实现最方便的存储.修改等操作 定 ...
- 小甲鱼Python学习笔记
一 isdigit()True: Unicode数字,byte数字(单字节),全角数字(双字节),罗马数字False: 汉字数字Error: 无 isdecimal()True: Unicode数字, ...
- python自动化测试学习笔记-2-字典、元组、字符串方法
一.字典 Python字典是另一种可变容器模型,且可存储任意类型对象,如字符串.数字.元组等其他容器模型. 字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割, ...
- python学习笔记02--列表和元组
一.简介 数据结构是通过某种方式组织在一起的数据元素的集合. 序列是python中最基本的数据结构,python中包含6种内建的序列,分别是列表.元组.字符串.Unicode字符串.buffer对象和 ...
- 小甲鱼汇编语言学习笔记——day03
手动编译并执行第一个汇编程序过程: 1.用notepad++写一个简单的汇编程序(文件命名为:1.asm): assume cs:abc abc segment mov ax, 2 add ax, a ...
- 小甲鱼汇编语言学习笔记——day02
1.8086CPU不支持将数据直接送入段寄存器,需要按照下面方式:数据——>通用寄存器——>段寄存器. 2.mov指令的几种形式: mov 寄存器,数据 mov 寄存器,寄存器 mov 寄 ...
- 小甲鱼汇编语言学习笔记——day01
1.计算机CPU由如下三部分组成(如下图):运算器.控制器.寄存器. 2.寄存器:简单说,就是用来存储数据的器件,类似内存,不过这个是CPU专用,跟内存不一样. 8086CPU里,寄存器总共有14个, ...
- Python学习笔记_week2_列表、元组、字典、字符串、文件、i编码
一. 列表.元组 names=["A","B","C","D"] print(names) print(names[0] ...
- python学习笔记(二)— 元组(tuple)
Python 的元组与列表类似,不同之处在于元组的元素不能修改:元组使用小括号,列表使用方括号. 元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可: tup1 = ('a', 'b', 19 ...
随机推荐
- canvas基础语法
前面的话 canvas顾名思义是定义在浏览器中的画布.它不仅是一个普通的元素,更是一个强大的编程工具.它的出现已然超过了web基于文档的设计初衷,将网页这一形态的应用推向了另一个高度.利用canvas ...
- KeepAlived+Nginx实现高可用负载
一.环境及安装版本: centos6.5.Nginx1.4.7.keepalived1.3.2 虚拟IP 真是IP Nginx端口 主从分配 10.0.90.215 10.0.90.217 80 MA ...
- mysql @value := 用法
背景 有这么一张表,记录名字和分数,现在需要按照成绩排名,存在并列名次的情况 解决方法 思路:按照score从大到小排序,第一行数据就是第一名,第二行就是第二名......需要判断当前行的score和 ...
- Sql Server数据库使用触发器和sqlbulkcopy大批量数据插入更新
需要了解的知识 1.触发器 2.sqlbulkcopy 我的用途 开发数据库同步的工具,需要大批量数据插入和数据更新. 方式 使用SqlBulkCopy类对数据进行数据批量复制,将需要同步数据的表新建 ...
- IP地址冲突
IP地址冲突问题.. IP地址冲突多数是由于同一局域网内,有2台或者多台电脑设置了同一个本地IP地址,导致局域网内部IP冲突导致,,建议尽量将本地IP地址设置为自动获取--然后查看自动获取的IP地址是 ...
- 公司python入职培训流程
时间分为4周,全部自学,仅提供大纲.适用于Web方向:1.Week1:读完<简明Python教程>,适应Python开发环境2.Week2:写个爬虫,需要深入了解re.urllib2.s ...
- 【详细资料】ICN6202:MIPI DSI转LVDS芯片简介
ICN6202功能MIPI DSI转LVDS,分辨率1920*1200,封装QFN40
- MySQL(三)之SQL语句分类、基本操作、三大范式
一.SQL语句的分类 DML(Data Manipulation Langauge,数据操纵/管理语言) (insert,delete,update,select) DDL(Data ...
- 开源项目Druid的提取SQL模板
在数据库审计中,常常用到SQL模板,这样提取一次模板,下一次就不用对相同的模板的SQL进行相关操作.对此Druid提供相应的工具类进行SQL模板提取: package com.dbappsecurit ...
- windows 下 Mutex和Critical Section 区别和使用
Mutex和Critical Section都是主要用于限制多线程(Multithread)对全局或共享的变量.对象或内存空间的访问.下面是其主要的异同点(不同的地方用黑色表示). Mutex Cri ...