1.列表
列表是python语言最通用的序列之一,是一个任意类型对象及其位置的相关有序集合,没有固定的大小,其大小和包含的对象是可变的。
标志
在python中列表常用“[ ]”,将不同类型的对象组合成python中的列表;同时也可以通过list()函数将其他类型的序列转化为列表。
基本操作(创建,append(),pop(),del(),拷贝)
- 创建:变量名=[ ],因此列表的创建就是用" [ ] "对对象进行引用。
- 添加:
- 1.使用insert()方法在列表中插入任意对象,且每次只能插入一个对象。insert()函数可以自定义对象插入的位置,且插入对象的实际位置是指定位置元素之前的位置;如果指定插入位置在列表中不存在,即超出指定列表长度则这个元素一定会被放到列表最后的位置;
fruit=["apple","banana"]
fruit.insert(1,"oranges")
print(fruit)
- 2.使用append()方法在列表末尾添加任意对象,也只能插入一个对象;
fruit=["apple","banana"]
fruit.append(["oranges","pear"])
print(fruit)
- 3.用列表位置索引的方法插入任意对象于列表中,一次也仅能插入一个对象,但插入后对象的数据类型可能会发生变化,例如原本是列表,插入后变为列表中单个的字符串,因此想在一个列表输出结果中插入多个对象,可以选择此方法插入列表,元祖等序列来实现;
fruit=["apple","banana"]
fruit[1:1]=(("oranges","pear"))
print(fruit)
- 4.使用extend()方法在列表末尾一次性增加另一个序列中多个对象的值,即用新列表来扩展原来的列表,与方法三的作用类似,不过方法三可以指定添加位置。
fruit=["pinapple","apple","banana","pear","grape"]
vegetable=['tomato','potato']
fruit.extend(vegetable)
print(fruit)
- 删除:
- 1.使用remove()方法移除列表中的第一个匹配项,若想成功移除列表中的对象,在括号中必须正确填写所要移除对象的名称及类型;
fruit=["pinapple","apple","banana","pear","grape"]
fruit.remove("apple")
print(fruit)
- 2.采用del()函数移除列表中指定位置的多个对象,注意使用时与remove()等方法的使用方式不同。注意采用del()方式可以删除整个列表,且列表删除后无法访问;
fruit=["pinapple,"apple","banana","pear","grape"]
del(fruit[1:2])
print(fruit)
- 3.采用pop()方法可以移除列表指定位置的对象并返回被删除对象的值,注意该方法默认值为列表中的最后一个元素且有返回值。
fruit=["pinapple","apple","banana","pear","grape"]
fruit.pop()
print(fruit)
print(fruit.pop())
fruit.pop(2)
print(fruit)
- 替换:列表元素的替换与修改主要通过对列表中的对象进行索引,赋值的方法,将原来位置的对象替换成新的对象。
fruit=["pinapple","apple","banana","pear","grape"]
fruit[2:4]=("tomato","potato")
print(fruit)
函数 | 作用 |
---|---|
len(list) | 列表元素的个数 |
max(list) | 返回列表元素的最大值 |
min(list) | 返回列表元素的最小值 |
list(seq) | 将元组转化为列表 |
注意:在python3中cmp()函数已经被以下函数所取代,输入cmp()进行比较时会报错.
import operator
fruit=["pinapple","apple","banana","pear","grape"]
vegetable=["tomato","potato",'eggplant']
print(operator.gt(fruit,vegetable))
print(operator.ge(fruit,vegetable))
print(operator.eq(fruit,vegetable))
print(operator.le(fruit,vegetable))
print(operator.lt(fruit,vegetable))
方法 | 说明 |
---|---|
list.reverse() | 反向列表中的元素 |
list.count() | 统计元素在列表中出现的次数 |
list.sort( cmp=none,key=none,reverse=false | 对原列表进行排序 |
fruit=["pinapple","apple","banana","pear","grape"]
fruit.sort(reverse=False)
print(fruit)
2.元组
标志
元祖用来将多样的对象组合在一起,与列表十分相似,但是元祖中对象不可以改变。元祖通过圆括号中用逗号分隔的项目定义。
通常用在使语句或用户定义的函数能够安全的采用一组值时,即被使用的元祖的值不会改变。
基本操作(创建及不可变性)
- 创建:与列表类似,元祖(tuple)的创建可以通过赋值的方式,可以将元祖当做一个容器,任何数据类型都可以放在这个容器中,定义单个元祖一定要在这个元素后加逗号,因此需要注意的是区分元祖类型的不是圆括号而是逗号。
- 索引查询
number=(1,2,3,4,5)
number=(1,2,3,4,5)
float=(1.1,2.3,3.4)
print(len(number),len(float))
a=(1,)
print(a)
print(number[2])
print(float[1:])float=(1.1,2.3,3.4)
print(len(number),len(float))
a=(1,)
print(a)
3.string字符串
定义及基本操作(+,*,读取方式)
- 定义:由零个或多个字符组成的有限串行(来自维基百科);或者更明白地说字符串就是在“xxxx”或者‘xxxx’(在双引号或单引号之间的文字),对于过长的文字需要换行时,需要用’’‘xxx’’'或者""“xxx”""(三引号进行引用,两种格式都正确)。需要注意的是字符串对象是不可以改变的。
- 连接:1.用“+”对字符串进行连接操作(连接双方必须均为字符串,字符串与其他数据类型不能用“+”进行连接)。
what_he_does=" plays"
his_instrument=" guitar"
his_name="Robert"
artist_intro=his_name+what_he_does+his_instrument
print(artist_intro)
2.将字符串与其他数据类型连接,可以采用字符串格式化的方法,会在关于字符串格式化的内容中详细介绍。或者采用str()——将其他数据类型转化为字符串型,int()——将其他数据类型转化为整型,等方法将不同数据类型转化为同一数据类型。
a=1
b='2'
c=a+int(b)
print(c)
- 复制:1.字符串的单次复制。利用赋值的方法将字符串由一个变复制到另一个变量中
2.通过“*”实现字符串的成倍复制。
a="words"
num=3
b=a*(len(a)-num)
print(b)
- 索引(读取)、分片:字符串可以通过 “字符串变量名[X]” 的方式进行索引,分片。如下图所示,字符串的位置编码如图所示(正向从0开始,逆向从-1开始),空格也占位。
字符串的分片 “a[n:m]” ,其中n<m,得到的字符是从a[n]到a[m-1],这一点在分片时需要特别注意!!!
a="friend"
b="vaild"
find_evil_in_ab=a[3]+b[0]+b[-3:-1]
print(find_evil_in_ab)
字符串相关方法
- 命名方法:
- 匈牙利命名法:开头字母用变量类型的缩写,其余部分用变量的英文或英文的缩写,要求单词第一个字母大写。
- 驼峰命名法:分为小驼峰法(第一个单词首字母小写,后面其他单词首字母大写)和大驼峰法(每个单词的第一个字母都大写)。
- 帕斯卡命名法:命名类似于大驼峰法。
函数 | 作用 |
---|---|
S.upper() | S中的字母全部大写 |
S.lower() | S中的字母全部小写 |
S.capitalize() | 首字母大写 |
S.istitle() | S中单词的首字母是否全部大写 |
S.isupper() | S中的字母是否全部大写 |
S.islower() | S中的字母是否全部小写 |
a="python,pycharm"
b=a.capitalize()
print(b)
print(b.istitle())
c="Python,Pycharm"
print(c.istitle())
- 去掉字符串两头的空格
函数 | 作用 |
---|---|
S.strip() | 去掉字符串左右两边的空格 |
S.lstrip() | 去掉字符串左边的空格 |
S.rstrip() | 去掉字符串右边的空格 |
a=" hello "
print(a.strip())
b=" world "
c=b.lstrip()
d=b.rstrip()
print(c)
print(d)
字符串的替换:S.replace(xx,xx)——常用于电话号码的隐藏
字符串的长度:len()
telephone_number="138-4561-7894"
a="*"
hiding_number=telephone_number.replace(telephone_number[:9],a*9)
print(hiding_number)
4.字符串格式化问题
- 占位符:占位符就是占住某一个位置等你往里面添加内容的符号。在python中规定了一些占位符来说明哪个位置应该填写什么类型的对象,常用的占位符有:“%s”——字符串占位符;“%d”——整数占位符;“%f”——浮点型占位符。
his_name="xiao ming"
what_he_done_1=" pays for a car"
what_he_done_2=" using"
money= 500000
danwei=" RMB"
the_thing=his_name+what_he_done_1+what_he_done_2+" "+"%s"%money+danwei
print(the_thing)
- 格式化字符串
python中字符串格式化操作符(“%”)只适用于字符串类型,格式化的形式为:将格式化的变量放到字符串中,再紧跟一个%,再紧跟一个变量名即可。需要注意的是想要在字符串中通过格式化字符放入多个变量时,需要将变量放到圆括号中,且用逗号隔开。
x="there are %d types of people"%10
a="binary"
b="don't"
y="those who knows %s and those who %s"%(a,b)
print(x)
print(y)
- format()函数的作用
- 填充:位置;关键字;下表
print('hello {} and {}'.format('kate','mark'))
name=['kate','mark']
print('hello {name[0]} and {name[1]}'.format(name=name))
print('hello {name1} and {name2}'.format(name1="kate",name2="mark"))
- 格式转换
- 对齐与填充