Python列表
列表介绍:
前面学习的字符串可以用来存储一串信息,Python列表是用来存放多个字符串或者变量等,Python列表中的元素可以是不同类型的。
列表的格式:变量A的类型为列表namesList = ['xiaoWang','xiaoZhang','xiaoHua']
比C语言的数组强大的地方在于列表中的元素可以是不同类型的:testList = [1, 'a']
列表的循环遍历:
1. 使用while循环:
namesList = [ 'xiaoWang' , 'xiaoZhang' , 'xiaoHua' ]
length = len (namesList)
i = 0
while i<length:
print (namesList[i])
i + = 1
|
1. 使用for循环:
namesList = [ 'xiaoWang' , 'xiaoZhang' , 'xiaoHua' ]
for name in namesList:
print (name)
|
列表的相关操作
1,添加元素:
1.1通过append可以向列表添加元素
my_list = [ 'laofeng' , 'laowang' , 'laoli' ]
name = 'laozhou'
my_list.append(name)
for n in my_list:
print (n)
|
1.2,extend:通过extend可以将另一个集合中的元素逐一添加到列表中
a = [ 1 , 2 ]
b = [ 3 , 4 ]
a.extend(b)
for i in a:
print (i)
|
1.3,insert:nsert(index, object) 在指定位置index前插入元素object
a = [ 1 , 2 , 3 ]
a.insert( 3 , 4 )
for i in a:
print (i)
|
2,修改元素:修改元素的时候,要通过下标来确定要修改的是哪个元素,然后才能进行修改
name = [ 'xiaoWang' , 'xiaoZhang' , 'xiaoHua' ]
name[ 1 ] = 'xiaoLu'
for n in name:
print (n)
|
3,查找元素("查"in, not in, index, count),所谓的查找,就是看看指定的元素是否存在
in, not in:判断元素是否在列表中,返回True或者False
nameList = [ 'xiaoWang' , 'xiaoZhang' , 'xiaoHua' ]
findName = 'xiaoZhang'
if findName in nameList:
print ( '在列表中找到了相同的名字' )
else :
print ( '没有找到' )
|
index和count与字符串中的用法相同,返回下标位置
a = [ 'a' , 'b' , 'c' , 'a' , 'd' ]
print (a.index( 'd' , 1 , 4 ))
print (a.index( 'a' , 1 , 4 ))
print (a.count( 'b' ))
print (a.count( 'f' ))
|
4,删除元素("删"del, pop, remove)
del:根据下标进行删除
pop:删除最后一个元素,也可以删除相应下标的元素
remove:根据元素的值进行删除
name = [ 'a' , 'b' , 'c' , 'a' , 'd' , 'e' ]
del name[ 2 ]
name.pop()
name.pop( 0 )
name.remove( 'a' )
for n in name:
print (n)
|
5,排序(sort, reverse)
sort方法是将list按特定顺序重新排列,默认为由小到大,参数reverse=True可改为倒序,由大到小。
reverse方法是将list倒序。
list = [ 'c' , 'b' , 'a' , 'd' ]
list .sort()
for l in list :
print (l)
rev = [ 'c' , 'b' , 'a' , 'd' ]
rev.reverse()
for r in rev:
print (r)
l_rev = [ 'c' , 'b' , 'a' , 'd' ]
l_rev.sort(reverse = True )
for l_r in l_rev:
print (l_r)
|
列表嵌套
类似while循环的嵌套,列表也是支持嵌套的
一个列表中的元素又是一个列表,那么这就是列表的嵌套
s_names = [[ '北京大学' , '清华大学' ],[ '南开大学' , '天津大学' , '天津师范大学' ],[ '山东大学' , '中国海洋大学' ]]
print (s_names[ 1 ])
print (s_names[ 1 ][ 0 ])
for s in s_names[ 2 ]:
print (s,end = ' ' )
|
多维数组转化成一维数组
s_names = [[ '北京大学' , '清华大学' ],( '南开大学' , '天津大学' , '天津师范大学' ),[ '山东大学' , '中国海洋大学' ]]
from itertools import chain
list (chain.from_iterable(s_names))
print ( list (chain.from_iterable(s_names)))
|
列表推倒式
所谓的列表推导式,就是指的轻量级循环创建列表
1. 基本的方式
list = [x for x in range ( 6 )]
print ( list )
|
2. 在循环的过程中使用if
list = [x for x in range ( 6 ) if x % 2 = = 0 ]
print ( list )
|
3. 2个for循环
list = [(x,y) for x in range ( 6 ) if x % 2 = = 0 for y in range ( 6 ) if y % 2 ! = 0 ]
print ( list )
|
4. 3个for循环
list
=
[(x,y,z)
for
x
in
range
(
6
)
if
x
%
2
=
=
0
for
y
in
range
(
6
)
if
y
%
2
!
=
0
for
z
in
range
(
2
)]
print
(
list
)