list类型,也叫做列表,或者数组,它与c或java中的数组有相同处也有不同处,这里的list类型方括号内可以是不同类型的数据
1.创建列表,列表中的项总是使用方括号[]括住,你可以直接通过常量来创建列表,也可能通过变量来创建列表,也可以变量跟常量混合来创建列表。但当你使用变量创建列表时,保存在列表里的只是变量内容的一个副本,你改变最初的变量的值,并不会改变列表中的值。
当你使用列表中的值时是通过列表的索引来获取的,索引是从0开始,到总长度-1结束,如果你的索引超过了最大索引编号,则会报错。如果你使用一个负数做索引,它将会从最后一项开始反向计数,-1就是列表的最后一项。
>>> fruit=['apple','strawberry']
>>> fruit[0]
'apple'
>>> time1='morning'
>>> time2='afternoon'
>>> times=[time1,time2]
>>> times[1]
'afternoon'
>>> times[2]
Traceback (most recent call last):
File "<pyshell#6>", line 1, in <module>
times[2]
IndexError: list index out of range
>>> time=[time1,time2,'evening']
>>> time[2]
'evening'
>>> time2='sss'
>>> times[1]
'afternoon'
>>> time2
'sss'
2.获取列表信息的一些操作
len()获取列表的长度,len(列表名)
count()统计列表中某一项在列表中出现的次数,列表名.count(列表项)
index()返回该项在列表中第一次出现的索引位置,如果该项不在列表中,将会报错,列表名.index(列表项)
in关键字,用来判断该项是否在列表中,列表项 in 列表名
>>> color=['red','blue','magenta','red','yellow','blue']
>>> len(color)
6
>>> color.index('red')
0
>>> color.count('blue')
2
>>> 'pink' in color
False
>>> 'yellow' in color
True
>>> color.index('pink')
Traceback (most recent call last):
File "<pyshell#21>", line 1, in <module>
color.index('pink')
ValueError: 'pink' is not in list
3.操作列表
前提条件:列表必须已经存在了,才能进行下列操作
1>在列表末尾添加项,用append()方法,列表名.append(列表项)
2>在列表末尾添加一个列表,用extend()方法,列表名.extend(列表项)
3>删除列表中的项并将该项后面的项向前移动一位,用remove()方法,列表名.remove(列表项),但是该方法只会删掉该列表中的第一个项,如果在列表中没有找到对应的项,将会报错
4>在列表的指定位置添加项,用insert()方法,列表名.insert(索引,列表项)
>>> order1=['pixxa','fries','balava']
>>> order2=['soda','lasagna']
>>> order1.append('pepperoni')
>>> order1
['pixxa', 'fries', 'balava', 'pepperoni']
>>> order1.extend(order2)
>>> order1
['pixxa', 'fries', 'balava', 'pepperoni', 'soda', 'lasagna']
>>> order1.remove('fries')
>>> order1
['pixxa', 'balava', 'pepperoni', 'soda', 'lasagna']
>>> order1.insert(1,'soda')
>>> order1
['pixxa', 'soda', 'balava', 'pepperoni', 'soda', 'lasagna']
4.列表的加法,不会改变任何一个列表,但会返回带有所有项的一个列表
列表的乘法,将列表重复n遍成为一个新列表
>>> a=[1,2,3]
>>> b=[2,3,4]
>>> a+b
[1, 2, 3, 2, 3, 4]
>>> a*2
[1, 2, 3, 1, 2, 3]
5.反转列表,reverse()方法,将反转列表中所有项的顺序,列表名.reverse()
升序排序列表,sort()方法,要么按字母顺序,要么按数字顺序,不能两者混合,列表名.sort()
>>> names=['mov',1,2]
>>> names
['mov', 1, 2]
>>> names.sort()
Traceback (most recent call last):
File "<pyshell#48>", line 1, in <module>
names.sort()
TypeError: '<' not supported between instances of 'int' and 'str'
>>> names=['mov','ddd','dfdf']
>>> names.sort()
>>> names
['ddd', 'dfdf', 'mov']
>>> names.reverse()
>>> names
['mov', 'dfdf', 'ddd']
6.列表的比较是通过==(等于)和!=(不等于)来进行的,等于要求每一项都一样,只要有一项不同就会返回False,不等于也一样,只要有一项相同,就会返回False。
循环
1.使用range()来获取数字的范围,会返回一个数字的列表,从0 开始到参数少1,range(数字),如果不想从0开始,就给range()两个参数,开始的数字和结束的数字,range(开始数,结束数),如果想让range()按照一定数值(称为步长)递增,给range()三个参数,开始数,结束数,步长。
2.for循环的格式 for {var}int {LIST}:
code block
code block
每次for循环运行时,在var位置的变量将设置为列表中的下一项,直到列表中没有项时,Python将会跳过这段代码。
遍历range()
>>> range(7)
range(0, 7)
>>> range(2,5)
range(2, 5)
>>> for i in range(5):
print(i)
0
1
2
3
4
遍历列表
>>> foods=['egg','apple','cocl']
>>> for food in foods:
print(food)
egg
apple
cocl
3.跳到下一个列表项,continue()语句
跳出循环,break()语句
4.while循环,一直运行,直到一个表达式为假
age=input("please input your age:")
while not age.isdigit():
print("I'm sorry,but{}isn't valid.".format(age))
age=input("please input your age:")
print("Thanks!your age is {}".format(age))
'''
please input your age:dfds
I'm sorry,butdfdsisn't valid.
please input your age:24dd
I'm sorry,but24ddisn't valid.
please input your age:23
Thanks!your age is 23
'''
isditit()判断字符串是不是数字,如果是为真,否则为假
小结:如果在你循环的时候改变了列表的值,循环将会使用修改后的内容,如果想使用降序来显示一个范围,将步长用负数来写,eg:range(10,0,-1),这是获取从10到1的范围