python list
同属于一个列表的数据,可以是不同的类型
特色:存储于用一个列表的数据都是以数字来作为索引的,即作为操作存取其中各个元素的依据。
a_list
0 1 2 3 4
int int int int int
1 3 5 7 9
索引分别为 0,1,2,3,4
每个元素可有自已的类型,均为int,内容分别是
1、3、5、7、9
a_list = [ 1,3,5,7,9 ]
数字列表
\>>> a_list=[1,3,5,7,9]
\>>> a_list
[1, 3, 5, 7, 9]
\>>> a_list[0]
1
字符串列表
\>>> str_list=['P','y','t','h','o','n']
\>>> str_list
['P', 'y', 't', 'h', 'o', 'n']
\>>> str_list[2]
't'
字符串split 方法
\>>> str_msg="I Love Pyton"
\>>> b_list=str_msg.split()
\>>> b_list
['I', 'Love', 'Pyton']
一个英文句子拆成字母所组成的列表,用list() 函数,
\>>> str_msg="I Love Pyton"
\>>> c_list=list(str_msg)
\>>> c_list
['I', ' ', 'L', 'o', 'v', 'e', ' ', 'P', 'y', 't', 'o', 'n']
\>>>
同一个列表中可以用不同的数据类型,列表中也可以有其他的列表
\>>> k1=['book',10]
\>>> k2=['campus',15]
\>>> k3=['cook',9]
\>>> k4=['Python',26]
\>>> keywords=[k1,k2,k3,k4]
\>>> keywords
[['book', 10], ['campus', 15], ['cook', 9], ['Python', 26]]
\>>> keywords[2]
['cook', 9]
\>>> keywords[2][0]
'cook'
\>>> keywords[2][1]
9
\>>>
可以使用”+“运算把两个列表放在一起,还可以 检测某一个数据是否在列表之中
\>>> "Python" in k4
True
\>>> k4 in keywords
True
\>>> ["Python",26] in keywords
True
\>>> keywords+k1+k2
[['book', 10], ['campus', 15], ['cook', 9], ['Python', 26], 'book', 10, 'campus', 15]
\>>>
比较常用的操作方法和函数
列表表达式 操作结果说明
lst * n 把lst类表重复n次
lst[n1:n2] 把索引组n1到n2的列表内容取出,组成一个列表
lst[n1:n2:k] 同上,但取出间隔为k
del lst[n1:n2] 删除索引值n1到n2之间的元素
lst[n1:n2]=n 把索引值n1到n2之间的元素设置为n
lst[n1:n2:k]=n 同上,但间隔为k
del lst[n1:n2:k] 删除索引值n1到n2之间的元素,但间隔为k
len(lst) 放回类表的个数
min(lst) 返回列表的最小值
max(lst) 返回列表的最大值
sum(lst) 返回列表的求和值
lst.index(n) 返回列表中第一个出现n的索引值
lst.count(n) 计算出n 在列表中出现的次数
\>>> x=list(range(10))
\>>> x
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
\>>> x*2
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
\>>> y=x[1:7]
\>>> y
[1, 2, 3, 4, 5, 6]
\>>> y=x[1:7:2]
\>>> y
[1, 3, 5]
\>>> del x[1:7]
\>>> x
[0, 7, 8, 9]
\>>> x=list(range(10))
\>>> x
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
\>>> del x[1:7:2]
\>>> x
[0, 2, 4, 6, 7, 8, 9]
\>>> x=list(range(10))
\>>> x
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
\>>> len(x)
10
\>>> max(x)
9
\>>> min(x)
0
\>>> x=list(range(3))
\>>> x
[0, 1, 2]
\>>> sum(x)
3
\>>> msg="Here is the string"
\>>> lst=list(msg)
\>>> lst
['H', 'e', 'r', 'e', ' ', 'i', 's', ' ', 't', 'h', 'e', ' ', 's', 't', 'r', 'i', 'n', 'g']
\>>> lst.index('e')
1
\>>> lst.count('e')
3
\>>>
列表操作方法:
(其中lst表示列表变量,x表示列表元素或是另外一个列表变量,n为数值)
lst.append(x) 将x视为一个元素,附加到列表的后面
lst.extend(x) 将x 中的所有元素附加到列表的后面
lst.insert(n,x) 把x插入到索引值为n的地方
lst.pop() 弹出列表中最后一个元素,可以参数指定特定的索引
lst.remove(x) 从列表中删除第一个出现的x
lst.reverse() 反转列表的顺序
lst.sort() 将列表的元素内容加以排序
append 与 extend 区别
\>>> lsta=[1,2,3,4,5]
\>>> exb=[5,5,5,5]
\>>> lsta.extend(exb)
\>>> lsta
[1, 2, 3, 4, 5, 5, 5, 5, 5]
\>>> lsta=[1,2,3,4,5]
\>>> lsta.append(exb)
\>>> lsta
[1, 2, 3, 4, 5, [5, 5, 5, 5]]
pop操作
\>>> lst=[0,1,2,3,4,5]
\>>> lst.append(9)
\>>> lst.append('x')
\>>> lst
[0, 1, 2, 3, 4, 5, 9, 'x']
\>>> lst.pop()
'x'
\>>> lst.pop(2)
2
\>>> lst
[0, 1, 3, 4, 5, 9]
\>>>
\>>> cars=['bwm','audi','toyota','subaru']
\>>> cars.sort()
\>>> cars
['audi', 'bwm', 'subaru', 'toyota']
\>>> cars.reverse()
\>>> cars
['toyota', 'subaru', 'bwm', 'audi']
\>>>
\>>> cars.remove('bwm') 用于不知道具体的索引位置,只知道具体的值
\>>> cars
['toyota', 'subaru', 'audi']
\>>> cars.insert(1,'haima') 指定位置插入
\>>> cars
['toyota', 'haima', 'subaru', 'audi']
\>>>
\>>> cars
['toyota', 'haima', 'subaru', 'audi']
\>>> for x in cars:
... print x
...
toyota
haima
subaru
audi
\>>> for x in cars:
... print x.title()
...
Toyota
Haima
Subaru
Audi
\>>>
通过循环创建所需列表
\>>> atest=[]
\>>> for value in range(1,11,2):
... a=value**2
... atest.append(a)
...
\>>> print atest
[1, 9, 25, 49, 81]
\>>> atest2=[value**2 for value in range(1,11,2)]
\>>> print atest2
[1, 9, 25, 49, 81]
\>>>
\>>> list_2d=[[0 for i in range(5)]for i in range(5)]
\>>> list_2d
[[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]]
\>>> list_2d[0].append(3)
\>>> list_2d[2].append(7)
\>>> list_2d
[[0, 0, 0, 0, 0, 3], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 7], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]]
\>>>
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341