Python列表的语法和使用

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lyc310/article/details/60478906

列表

语法

语法书写

变量名称 = ["字符串1","字符串2"...,...,"字符串N-1"] #该字符串可为数字或变量,数字无需加双引号,变量需先定义,否则会出错
列子:
longyucendeMacBook-Pro:~ longyucen$ python3
Python 3.5.2 (default, Oct 11 2016, 04:59:56) 
[GCC 4.2.1 Compatible Apple LLVM 8.0.0 (clang-800.0.38)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> age = 22
>>> name = ['minglong', 'minghu', 'Jack', 22, 23, 23, 3, 4, 5, 7, 87, 89, 9, 9, 4,age]
>>> name
['minglong', 'minghu', 'Jack', 22, 23, 23, 3, 4, 5, 7, 87, 89, 9, 9, 4, 22]

选择列表中的数值

若选择列表中的两个数值
>>> name[0:1] 
['minglong']
#数值下标从0开始,按照python语法规则,他只包含头部内容不包含尾部内容,因此要取两个数据按下面的语法取值
>>> name[0:2]
['minglong', 'minghu']
#取后面列表最后一位
>>> name[-1]
22
#取后面5位数字
>>> name[-5:] #python只能从左边向右边取数且按照包头不包尾的原则,该语法[-5:-1]是无法将最后一位取出,因此取出最后一位则要省略最后一位的下标
[89, 9, 9, 4, 22]

列表的插入、追加、替换、删除、合并、反转、清空、排序、复制数据

#追加数据,向列表第二位后面追加一个数值
>>> name.insert(2,"abc")
>>> name
['minglong', 'minghu', 'abc', 'Jack', 22, 23, 23, 3, 4, 5, 7, 87, 89, 9, 9, 4, 22]
#若从后面追加数值的话,应该是在该值后面一值的前面
>>> name
['minglong', 'minghu', 'Jack', 22, 23, 23, 3, 4, 5, 7, 87, 89, 9, 9, 4, 22, 'abc']
>>> name.insert(-1,"bb")#要在"22"和"abc"之间插入一个数值,从后面计算的话是往"abc"的前面插入
>>> name
['minglong', 'minghu', 'Jack', 22, 23, 23, 3, 4, 5, 7, 87, 89, 9, 9, 4, 22, 'bb', 'abc']
#删除数据,将上面添加的数值进行删除
>>> name.remove("abc")
>>> name
['minglong', 'minghu', 'Jack', 22, 23, 23, 3, 4, 5, 7, 87, 89, 9, 9, 4, 22]
#在列表最后面添加数据
>>> name.append("abc")
>>> name
['minglong', 'minghu', 'Jack', 22, 23, 23, 3, 4, 5, 7, 87, 89, 9, 9, 4, 22, 'abc']
#替换列表中数值的值
>>> name
['minglong', 'minghu', 'Jack', 22, 23, 23, 3, 4, 5, 7, 87, 89, 9, 9, 4, 22, 'bb', 'abc']
>>> name[0]="longyucen"
>>> name
['longyucen', 'minghu', 'Jack', 22, 23, 23, 3, 4, 5, 7, 87, 89, 9, 9, 4, 22, 'bb', 'abc']
#合并数据(扩展数据)
>>> name
['longyucen', 'minghu', 'Jack', 22, 23, 23, 3, 4, 5, 7, 87, 89, 9, 9, 4, 22, 'bb', 'abc']
>>> txt
['aa', 'b', 122, 33, 444, 'long', 'texi']
>>> name.extend(txt) #将txt中的数值合并追加到name数组最后,txt这个数组还是保留内容
>>> print (name)
['longyucen', 'minghu', 'Jack', 22, 23, 23, 3, 4, 5, 7, 87, 89, 9, 9, 4, 22, 'bb', 'abc', 'aa', 'b', 122, 33, 444, 'long', 'texi']
#反转数据--把最后的数据换到最前面来
>>> txt
['aa', 'b', 122, 33, 444, 'long', 'texi']
>>> txt.reverse()
>>> print (txt)
['texi', 'long', 444, 33, 122, 'b', 'aa']
#清空列表中的值
>>> txt.clear()
>>> print (txt)
>>> []
#列表排序
>>> txt.sort() #3.0不能直接排序,2.0可以直接排序(数字在前,字符在后)
#删除数值并返回该数值
>>> txt.pop() #删除数值并返回删除的数值。默认删除最后一个数值,括号中的参数为数值的下标
#复制列表数据
>>> a
[1, 2, 3, 5, 6, 7, 8]
>>> a1 = a.copy() #完全复制上一个列表中的数据
>>> a1
[1, 2, 3, 5, 6, 7, 8]
#复制后更改a列表或a1列表中的数据都不会改变对方的数据,表明两个列表相互独立
>>> a[0]="alex"
>>> a
['alex', 2, 3, 5, 6, 7, 8]
>>> a1[0]="ALEX" 
>>> a1
['ALEX', 2, 3, 5, 6, 7, 8]
#列表中可嵌套一个列表,但是复制的列表只会复制第一层的列表数据,第二层的列表数据在被两个列表修改时都会同时发生变化,这表示这第二层的数据只能是被两个列表共享(引用内存地址)相当于两者拥有这个第二层列表数据(内存地址)的软链接,而不能成为两者的独立数据
![](media/14887020557116/14887209442457.jpg)
>>> a.insert(1,[1,2,3,4,5,6])
>>> a
['alex', [1, 2, 3, 4, 5, 6], 2, 3, 5, 6, 7, 8]
>>> a1 = a.copy()
>>> a1
['alex', [1, 2, 3, 4, 5, 6], 2, 3, 5, 6, 7, 8]
>>> a[1][2] = 33333
>>> a
['alex', [1, 2, 33333, 4, 5, 6], 2, 3, 5, 6, 7, 8]
>>> a1[1][3] = 4444
>>> a1
['alex', [1, 2, 33333, 4444, 5, 6], 2, 3, 5, 6, 7, 8]
>>> a
['alex', [1, 2, 33333, 4444, 5, 6], 2, 3, 5, 6, 7, 8]
#a.copy()与copy库中的copy.copy(a)得出的结果是一样的
>>> import copy
>>> a2=copy.copy(a)
>>> a2
['alex', [1, 2, 33333, 4444, 5, 6], 2, 3, 5, 6, 7, 8]
>>> a
['alex', [1, 2, 33333, 4444, 5, 6], 2, 3, 5, 6, 7, 8]
>>> a[1][1]=22222
>>> a
['alex', [1, 22222, 33333, 4444, 5, 6], 2, 3, 5, 6, 7, 8]
>>> a2
['alex', [1, 22222, 33333, 4444, 5, 6], 2, 3, 5, 6, 7, 8]
#完全克隆所有列表中的数据
>>> import copy
>>> a3=copy.deepcopy(a)
>>> a3
['alex', [1, 22222, 33333, 4444, 5, 6], 2, 3, 5, 6, 7, 8]
>>> a[1][1]=223333
>>> a
['alex', [1, 223333, 33333, 4444, 5, 6], 2, 3, 5, 6, 7, 8]
>>> a3
['alex', [1, 22222, 33333, 4444, 5, 6], 2, 3, 5, 6, 7, 8]

数据的切分

#切分列表中"Jack"中的"a"
>>> name[2:3][0] #我不明白为什么要先取到自己才可以切分自己?
'Jack'
>>> name[2:3][0][1]
'a'

列表步长的打印

#默认列表的步长为1,因此若要隔一个数值打印一个数值步长为2
>>> name
['longyucen', 'minghu', 'Jack', 22, 23, 23, 3, 4, 5, 7, 87, 89, 9, 9, 4, 22, 'bb', 'abc']
>>> name[0::2] #由于要打印列表的最后一位,因此不写结束的小标
['longyucen', 'Jack', 23, 3, 5, 87, 9, 4, 'bb']
>>> name[::2] #"::"该形式表示从开头到结束
['longyucen', 'Jack', 23, 3, 5, 87, 9, 4, 'bb']

练习

#写一个列表,列表中插入一些数值
>>> txt = ["a","b",122,33,444,"long","texi"]
>>> txt
['a', 'b', 122, 33, 444, 'long', 'texi']
#往中间插入两个数值
>>> txt
['a', 'b', 122, 33, 444, 'long', 'texi']
>>> txt.insert(3,"jack")
>>> txt.insert(4,"book")
>>> txt
['a', 'b', 122, 'jack', 'book', 33, 444, 'long', 'texi']
#取出第3-8的列表
>>> txt[2:8]
[122, 'jack', 'book', 33, 444, 'long']
#删除第7个数值
>>> txt
['a', 'b', 122, 'jack', 'book', 33, 444, 'long', 'texi']
>>> txt[6] #取第7个值
444
>>> txt.remove(txt[6])
>>> txt
['a', 'b', 122, 'jack', 'book', 33, 'long', 'texi']
#把刚才加入的两个数值删除
#del python全局命令,删除内存中的数据
>>> txt
['a', 'b', 122, 'jack', 'book', 33, 'long', 'texi']
>>> txt[3:5]
['jack', 'book']
>>> del txt[3:5]
>>> txt
['a', 'b', 122, 33, 444, 'long', 'texi']
#删除整个变量 "del txt"
#为第一个数值进行更改
>>> txt
['a', 'b', 122, 33, 444, 'long', 'texi']
>>> txt[0]="aa"
>>> txt
['aa', 'b', 122, 33, 444, 'long', 'texi']
#隔一个数值打印一个(全部数值)--步长
>>> txt
['aa', 'b', 122, 33, 444, 'long', 'texi']
>>> txt[::2]
['aa', 122, 444, 'texi']

查看列表中是否存在相关数值

>>> txt
['aa', 'b', 122, 33, 444, 'long', 'texi']
>>> print (122 in txt) #查看122是否在该列表中,在则返回值为真
True
>>> print (22 in txt) #不存在则返回值为假
False
#使用if语句判断元素是否存在在列表中
#pycharm中:
txt = ['aa', 'b', 122, 33, 444, 'long', 'texi']
if 122 in txt: #判断是否存在
    num_of_ele = txt.count(122) #统计有多少个122,函数是count
    print("%s's 122 is in txt" % num_of_ele)
#python3中:
>>> if 122 in txt:
...     print("122 is in txt") #在python控制台中,代码自己不会自动缩进
... 
122 is in txt

判断是否存在在数组中并修改该值

#!/usr/bin/env python
#-*-coding:UTF-8-*-
txt = ['aa', 'b', 122, 33, 444, 122,'long', 'texi']
if 122 in txt:
    count = txt.count(122) #统计有多少个”122“
    position = txt.index(122) #查询到122的索引位置
    txt[position] = 1222
    print("%s's 122 is in txt,position:[%s]" % (count,position))
    print(txt)
#语句扩展--修改所有122的值
#!/usr/bin/env python
#-*-coding:UTF-8-*-
txt = ['aa', 'b', 122, 33, 444, 122,'long', 'texi']
for i in range(txt.count(122)):
    txt[txt.index(122)] = 14444
    print(txt)

查看元素的源代码

Pycharm软件下
windows环境下按住crtl键,鼠标点向这个元素,会弹出该元素的原代码解释
MAC OS环境下按住command键

阅读更多
换一批

没有更多推荐了,返回首页