操作list【数组】
list=【1,2,3,4】
1、访问list中的元素
list中的每个元素都对应一个递增的序号,索引以0开始
list[0] 代表第一个元素,list[1]代表第二个元素
2、修改list中的元素
修改list中的某一个元素,只需要直接给那个元素赋值就可以了:
list[0] = 1
3、向list中添加元素
list有一个append方法,可以增加元素,list.append(5),添加到原list的末尾:
list=[1,2,3,4,5]
4、删除list中的元素
使用del可以删除list中的元素,del list[0],删除第一个元素
5、向元素的list中任意位置插入新的元素
使用insert方法插入,list.insert(0,-1),向第一个参数位置插入-1;
第一个参数时插入元素位置,第二个参数时插入元素的值
6、利用random产生随机数的另一个方法:choice,它的作用是从一个list中随机挑选一个元素
from random import choice
b=['left',123,456,'right'
a=choice(b) 随机选择b的list中的元素来赋给a变量
点球小游戏:
from random import choice
print 'Choose one side to shoot:'
print 'left, center, right'
you = raw_input()
print 'You kicked ' + you
direction = ['left', 'center', 'right']
com = choice(direction)
print 'Computer saved ' + com
if you != com:
print 'Goal!'
else:
print 'Oops...'
字符串的分割
1、举例,定义变量sentence :
sentence = 'I am an Englist sentence'
sentence.split()
split()会把字符串按照其中的空格进行分割,分割后的每一段都是一个新的字符串,最终返回这些字符串组成一个list。
得到:
['I', 'am', 'an', 'Englist', 'sentence']
原来字符串中的空格不再存在。
2、split()默认是按空格进行分割;还可以指定分割符:换行符\n,制表符\t 等等
section = 'Hi. I am the one. Bye.'
通过指定分割符号为'.',可以把每句话分开
section.split('.')
得到:
['Hi', ' I am the one', ' Bye', '']
'.'作为分割符被去掉了,而空格仍然保留在它的位置上。
注意最后那个空字符串。每个'.'都会被作为分割符,即使它的后面没有其他字符,也会有一个空串被分割出来。
例如:'aaa'.split('a') 得到['', '', '', ''],由四个空串组成的list
连接list
join()方法,join的参数是被连接的list
1、举例:
s = ';'
li = ['apple', 'pear', 'orange']
fruit = s.join(li)
print fruit
得到:
'apple;pear;orange'
字符串的索引和切片
1、遍历
通过for...in可以遍历字符串中的每一个字符。
word = 'hellow'
for c in word:
print c
结果:
h
e
l
l
o
w
2、索引访问
通过[]加索引的方式,访问字符串中的某个字符。
print word[0] 结果:h
print word[-2] 结果:l
3、切片
通过两个参数,截取一段子串,具体规则和list相同。
print word[2:4] 【输出字符:ll;不包含下标第4的位置】
print word[:-2] 【输出字符:hell】
print word[:] 【输出全字符:hello】
[ a:b]内冒号前的a表示切片的开始位置,冒号后b表示切片到哪里结束;
注意:开始位置a包含其中,结束位置b不包含
又举例:
数组的切片list=[1,2,3,4,5,6]
list[2:4] 【输出[3,4]】
list[0:5:3] 【输出[1,4]】
list[2::2] 【输出[3,5],从下标2开始,距离2个位置的,中间b为空表示从list的所有元素中切片】
list[a:b:c] 【a表示从下标a开始,b将从list的元素总个数b中去切片,c表示距离下表a的位置】
4、连接字符join()
word="helloword"
newword = ','.join(word)
print(newword)
h,e,l,l,o,w,o,r,d
数字、变量、元组不可变,强行改变会报错
1、举例:
元组 a=(1,2,3,4) #元组用圆括号表示,不可变的目的就是为了写保护
a[0]=9 #强行赋值,这样会报错
2、数组list,字典trupe是可变的
list=[1,2,3,4] ,vat{"name":"hu","age":20}
list[0]=5 #再赋值OK
vat["name"]="de" #再赋值OK
字典
1、字典就是一个键/值对的集合。它的基本格式是(key是键,alue是值):d = {key1 : value1, key2 : value2 }
键/值对用冒号分割,每个对之间用逗号分割,整个字典包括在花括号中。
注意:
@1、键必须是唯一的;
@2、键只能是简单对象,比如字符串、整数、浮点数、bool值。
@3、python字典中的键/值对没有顺序,我们无法用索引访问字典中的某一项,而是要用键来访问。
举例:
score = {
'萧峰': 95,
'段誉': 97,
'虚竹': 89
}
print score['段誉']
2、dict={}
dict['one']='This is one' #为字典键one的值赋值'This is one'
dict[2]='This is two'
print dict['one'] #输出建为'one'的值
print dict[2] #输出键为2的值
print dict #输出完整的字典
print dict.keys() #输出所有键
print dict.values() #输出所有值
元组
元组用()标识,内部元素用逗号来隔开,但是元组不能二次赋值
truple=('need',786,233)
print truple # 输出完整的元组
print truple[0] #输出元组的第一个元素
print truple[1:3] #输出第二个和第三个元素【实际为:truple[1],truple[3]】
print truple[2:] #输出从第三个开始至列表末尾的所有元素
print truple*2 #输出元组两次
print truple+truplelist #输出组合的元组
数组list中常用函数方法:
list=['aa','bb','cc','dd']
len(list) #计算数组list的长度:4
max(list) #计算列表list中最大的值【当list中的元素都是int整型数字时】
min(list) #计算列表list中最小的值【当list中的元素都是int整型数字时】
list.append('ee') #向数组list中追加元素“ee”,顺序在末尾
list.insert(1,'ff') #向数组list的第二个元素位置插入元素'ff'
list.count('aa') #统计数组list中元素'aa'的个数
list.index('bb') #统计并计算出列表list中元素'bb'的序号位置:结果:2
list.sort() #对数组list进行升序排序【默认的】
list.reverse() #将数组list逆序进行排序
函数count()
list.count(a,start=0,end=len(string))
a:统计的字符
start:字符开始的索引位置,默认从第一个位置开始
end:字符结束的索引位置
list=[1,2,2,3]
如:list.count(2,1,2) 结果:1
list.count(2,0,1) 结果:0 #end=1表示字符结束在第二个位置,且第二个位置是不参与统计的
函数sort()
原型:sort(fun,key,reverse=False)
参数fun:是表名此sort函数时基于何种算法进行排序的,一般默认情况下python中用过的是归并排序并且一般情况下不会重写此参数,所以基本可以忽略。
参数key:用来指定一个函数,此函数在每次元素比较是调用,此函数代表排序的规则
参数reverse:用来表明是否逆序,默认的False情况下时按照升序的规则进行排序,reverse=True按照降序进行排序。
list=[(2,5,10),(1,0,3),(6,7,12)]
@1、list.sort()
print list #按照默认条件,以每个元组中的第一个元素进行升序排序
[(1,0,3),(2,5,10),(6,7,12)]
@2、list.sort(key=lamdba x:(x[1])) #以5 0 7进行排序,即按照每个元组的第二个元素排序
print list
[(1,0,3),(2,5,10),(6,7,12)]
@3、list.sort(key=lambda x:(x[2])) #以10 3 12 进行排序,即按照每个元组的第三个元素排序
print list
[(1,0,3),(2,5,10),(6,7,12)]
@4、使用匿名函数重写key所代表的函数,先按照元组中的第三个元素进行排序,若第三个元素相等,再按照元组中的第二个元素进行排序
list=[(1,8,3),(4,5,3),(7,0,3)]
list.sort(key=lambda x:(x[2],x[1]))
print list
[(7,0,3),(4,5,3),(1,8,3)]