最新消息:XAMPP默认安装之后是很不安全的,我们只需要点击左方菜单的 "安全"选项,按照向导操作即可完成安全设置。

python基础学习列表详细用法

XAMPP案例 admin 633浏览 0评论

列表是python最常用的数据结构之一,它用方括号[]表示,比如

a=[2,5,3.14]

方括号内的各个元素用逗号隔开,列表的长度是可变的,列表内的元素也是可变的,元素类型也不要求一致,比如上述列表a里既有整数,也有浮点数,列表还可以嵌套定义,比如

b=[3.14,[666,100],’Hello world’]

列表[666,100]嵌套在列表b里,列表还可以通过list()函数将字符串转换而来

list(‘中秋节快乐’)

得到的结果是

['中', '秋', '节', '快', '乐']

它将字符串里的每一个字符拆开作为列表的元素,列表里的每一个元素都是字符串。

列和字符串同属于序列类型,所以列表和字符串有很多相似的操作符和函数,总结如下:

 

序列类型通用操作符:

x in s

如果x是s的元素,返回True,否则返回False

x not in s

如果x不是s的元素,返回False,否则返回True

s + t

连接s和t

s*n 或 n*s

将s复制n次

s[i]

索引,返回s中的第i个元素

s[i: j] 或 s[i: j: k]

切片,返回序列s中第i到j以k为步长的元素子序列

 

序列类型通用函数和方法:

 

len(s)

返回序列 s 的长度

min(s)

返回序列 s 的最小元素,s 中元素需要可比较

max(s)

返回序列 s 的最大元素,s 中元素需要可比较

s.index(x)

返回序列 s 第一次出现元素x的位置

s.count(x) 

返回序列 s 中出现x的总次数

代码举例如下:

a=[3.14,[666,100],'Hello world']
print(3.1415 in a) #返回False
print(3.1415 not in a) #返回True
print(a+[80]) #[3.14, [666, 100], 'Hello world', 80]
print(a*2) #[3.14, [666, 100], 'Hello world', 3.14, [666, 100], 'Hello world']
print(a[1]) #返回[666, 100]
print(a[1][0])  #返回666
print(len(a))  #返回3
print(a.index('Hello world')) #返回2
print(a.count(666)) #返回 0

在例子中,列表a总共有3个元素,分别是3.14,[666,100],’Hello world’,列表从左往右的序号从0开始,所以第6行代码返回第1个元素,即[666,100],这个元素是一个列表,第7行代码是返回第1个元素中的第0个元素,即求[666,100]中的第0个元素,结果是666。

第10行代码是返回元素666出现次数,注意666不是列表a的元素,它只是元素[666,100]的一部分,故返回0。

列表中有数值,有字符串,有列表,所以不能进行max()和min()运算。

列表支持很多添加、删除元素的函数,常见的有:

  • list.append(x)
  • 在列表末尾添加一个元素。
  • list.insert(ix)
  • 在第i个位置插入元素x。
  • list.remove(x)
  • 从列表中删除第一个值为 x 的元素。未找到指定元素时,触发 ValueError 异常。
  • list.pop([i])
  • 删除列表中指定位置的元素,并返回被删除的元素。未指定位置时,a.pop() 删除并返回列表的最后一个元素。(方法签名中 i 两边的方括号表示该参数是可选的,不是要求输入方括号。这种表示法常见于 Python 参考库)。
  • list.clear()
  • 删除列表里的所有元素。
  • list.sort([reverse=True])
  • 就地排序列表中的元素。
  • sorted(list)
  • 返回排好序的副本,原列表不变。
  • list.reverse()
  • 反转列表中的元素。

详细用法请参考以下例子:

In [1]: a=[1,4,6.66,['今天天气不错',100],'How are you']
In [2]: a.append(99) #99添加到列表的末尾
In [3]: a
Out[3]: [1, 4, 6.66, ['今天天气不错', 100], 'How are you', 99]
In [4]: a.insert(2,'新元素') #在第2个位置插入,注意序号从0开始
In [5]: a
Out[5]: [1, 4, '新元素', 6.66, ['今天天气不错', 100], 'How are you', 99]
In [6]: a.remove('新元素') #删除元素
In [7]: a
Out[7]: [1, 4, 6.66, ['今天天气不错', 100], 'How are you', 99]
In [8]: a.pop() #删除最后一个元素
Out[8]: 99
In [9]: a.reverse() #列表元素反转
In [10]: a
Out[10]: ['How are you', ['今天天气不错', 100], 6.66, 4, 1]
In [11]: b=[4,6,0,9,7]
In [12]: b.sort() #升序排列,改变b的值
In [13]: b
Out[13]: [0, 4, 6, 7, 9]
In [14]: b.sort(reverse=True)
In [15]: b
Out[15]: [9, 7, 6, 4, 0]
In [16]: c=[4, 6, 0, 9, 7]
In [17]: sorted(c) #升序排列,不改变c的值
Out[17]: [0, 4, 6, 7, 9]
In [18]: c
Out[18]: [4, 6, 0, 9, 7]

代码的样式跟以往有点不太一样,这个代码是在anaconda 中的spyder右边的交互式窗口写的,查看变量的值时,只需写上变量名然后回车,无需print()函数,在一些验证式的程序中尤其方便。代码中In表示输入,Out表示输出的内容。

 

修改和删除列表元素还有以下几种形式:

list[i]=x

将列表第i个元素替换为x

list[i:j]=lt

用列表lt替换第i个元素到第j-1个元素

list[i:j:k]=lt

用列表lt替换列表第i个到第j-1个步长为k的元素

del list[i:j]

删除列表第i个到第j-1个元素

del list[i:j:k]

删除列表第i个到第j-1个步长为k的元素

举例如下:

In [1]: a=[2,3,4,5,6,7,8,9]
In [2]: a[3]=100 
In [3]: a
Out[3]: [2, 3, 4, 100, 6, 7, 8, 9]
In [4]: a[4:7]=[66,88,99]
In [5]: a
Out[5]: [2, 3, 4, 100, 66, 88, 99, 9]
In [6]: a[::2]=[0,0,0,0]
In [7]: a
Out[7]: [0, 3, 0, 100, 0, 88, 0, 9]
In [8]: del a[0:2]
In [9]: a
Out[9]: [0, 100, 0, 88, 0, 9]
In [10]: del a[0:4:2]
In [11]: a
Out[11]: [100, 88, 0, 9]

因为列表的切片与字符串的切片是一样的,所以代码不做过多解释,大家对照运行结果认真理解,如果看不懂返回字符串切片复习。

———-END———-

转载请注明:XAMPP中文组官网 » python基础学习列表详细用法

您必须 登录 才能发表评论!