一、元组也是一种列表。并且是不可以改变列表类型。
可变类型和不可变类型。举个栗子:
a = 1
b = 2
b = a
print(‘第一次b的值:’,b)
a=2
print('第二次b的值:‘,b)
答案是:第一次的值:1,第二次的值:1
变量a,b的值是可以通过重新赋值的方式改变。
而元组的特点就是:一旦定义好,就不能再变了。
cities = ('beijing','shanghai')
print(cities[0])
print(cities.count('beijing')) #元组可以计算元素出现的次数
print(cities.index('beijing')) #元组可以查看元素第一次出现的顺序。
二、字符串也是一旦定义好,就不能修改了,除非重新对他赋值。举个栗子
str=“abcDEFabc”
str = str.replace('abc',' ')
print(str)
结果是:abcDEFabc
str= str.replace('abc',' ') 如果换成:str1= str.replace('abc',' ') 再把打印str1就出来
切片:就是一种取值的方式。可以用于列表和字符串。下面是列表的切片取值方法
先构造一个list:
string模块里面包含几个方法,可以导入string模块:
import string
num = list(string.digits) 实现的是把一组数字的字符串转化为一个list
print(num) 打印列表的全部内容
print(num[::-1]) 第二个冒号后面值代表步长,是隔几个元素取一次,步是负数的话,从右往左开始取值
print(num[:3]) 顾头不顾尾,如果开始的下标不写的话,那么就是从最前面开始
print(num[-1]) -1代表最后一个元素
print(num[1:]) 如果后面下标不写的话,代表取到最后
print(num[:]) 开头的下标和结尾的下标都不写的话,代表取整个list
有一个有趣儿的小代码(一)
a = [1,1,2,3,4,5,6,78]
b=a[:]
for i in b:
if i%2==0:
a.remove(i)
print a #输出的是1,1,3,5
但是如果代码调整一下。结果就会不一样
a = [1,1,2,3,4,5,6,78]
for i in a:
if i%2==0:
a.remove(i)
print a #输出的是 [1, 1, 3, 5, 78]
列表是按下标去找元素的,当满足条件的被删除以后下,标就是又重新编号了,而循环还是按原来的顺序进行。
再来一个测验题:不能引入第三方变量的情况下,把这个两个值交换。
a= 1 b=2
[方法]1
a = a+b #3=1+2
b=a-b #1=3-2
a = a-b
【方法】2
b,a=a,b
二、字典
字典中的元素是以键值对的方式存储的。元素的存取是无序的。比如:
shenyang = { 'name':'沈阳',
'age':18,
'sex':'不知道',
'addr':'天通苑',
'qq':19823423,
'email':'[email protected]',
}
可以对字典进行增删改查操作
增:
shenyang[“女朋友”]="漂亮"
shenyang.setdefult('age',18) #setdefault这种方式,如果key已经存在,不管它,如果key不存在的话,就新增。
改:
shenyang[“女朋友”]="很漂亮"
删:
shenyang.pop("女朋友”) #通过key的方式删除,如果key不存在,会报错
del shenyang[age] 通过这个方式删除,如果key不存在,不会报错
查:
shenyang['name']
shenyang.get("name",“沈阳”)
shenyang.pop[name']
shenyang.clear() #清空字典
shenyang.popItem["’]
yaoyuan = {'chouyan':'1包','name':'姚远'}
shenyang.update(yaoyuan) #把一个字典加入到另外一个字典里面
遍历字典的方法:
for k,v in shenyang.iteams():
print(k,v)
高效循环字典的方法:
for i in shenyang:
pring(i,i.get(i)) #根据key去获取对应的value
三、字符串
字符串的常用方法如下:
name = “the apple”
name.captalize() #把字符串的首字母大写
name.center(100,'-') #字符居中。‘,’前面表示填充后真个字符串的长度。‘,‘后面表示使用哪种符号填充。
name.index('a' ) #a在字符串中第一次出现的下标号,找不到下标的时候会报
name.isalnum() #字符串只能有数字或是字母
name.isalpha() #判断是否只为英文,汉字也可以
name.count(‘p’) #查询出现的次数
name.endwith('.jpg') #判断字符串是否以xx结尾
name.startwith('a') #判断字符串是否以xx开头
name.upper() #全变成大写的
name.lower() #全变成小写的
name.find('a') #查找xx的个数,没有找到不会报错,返回-1
name.isdigit() #判断是否为纯数字
name.isspace() #判断是否全都是空格
name. strip() #去掉字符串两边的东西,默认是去掉两边的空格和换行符
name.lstrip() #只去掉左边的
name.rstrip() #只去掉右边的
name.replace(‘ap’,‘pea’)# 替换字符串,把前面的替换为后面的
name.zfill(2) #在前面补0
a="abc,def,ghi,jkl'
print(a.split(',')) #1、分隔字符串2、把字符串变成一个list3、默认是按空格或者换行符分隔。
stu=['123','456','789']
print('-'.join(stu) #1、把list拼接成字符串 2、以某个字符串连接
字符串的一些方法包含在string模块中。使用前先导入。
import string
string.ascii_letters #所有的大写+小写字母
string.ascii_lowercase #所有的小写字母
string.ascii_uppercase #所有的小写字母
string.digits #所有的数字
string.punctuation #所有的特殊字符
print(name[1]) #字符串也是可以根据下标来取值的