Python:列表和元组的通俗理解【1】

        数据结构:通过某种方式将数据元素组合在一起的集合。在Python中,最基本的数据结构就是 序列,序列中每个元素被分配一个序号(即元素位置),也叫索引,索引从0开始。Python种包含6种内建的序列,但最常见的是列表元组。两者区别是:列表可修改;元组不可修改。

A=["liu",45]
B=["wang",32]
database=[A,B]
database
Out[1]: [['liu', 45], ['wang', 32]]
database就是一个自建的数据库

1、对序列的操作

有索引、分片、加、乘、检查某元素是否属于序列、计算序列长度、最大值、最小值以及迭代等(迭代:对序列中的元素重复操纵)

1.1索引

A="hello"
A[0]
Out[2]: 'h'
索引0指的是第1个元素
字符串是有字符组成的序列

A="hello"
A[-1]
Out[3]: 'o'
索引为负数时,从序列右边计数,最后一个元素的索引位置是-1,而不是-0

1.2 切片

A=[1,2,3,4,5]
A[1:3]
Out[7]: [2, 3]
第一索引元素包含在分片内,第二个不包括。即A[1:3]只取第1和2个元素

如果想取最后几个元素

A=[1,2,3,4,5]
A[2:5]
Out[8]: [3, 4, 5]
这样取当然可以,切记A[2:5]的2和5是元素位置,不是元素

若从列表截尾处开始呢?
A=[1,2,3,4,5]
A[-3:-1]
Out[9]: [3, 4]
A[-3:-1]表示取倒数第3和倒数第2个元素,不包括倒数第1个
如果把-1换成0呢?
A=[1,2,3,4,5]
A[-3:0]
Out[10]: []
因为只要左边的索引比右边的索引出现的晚,就会输出空白序列(倒数第3个比第1个出现的晚)

其实,对于取最后几位元素有一个捷径,即把-1换成空格
A=[1,2,3,4,5]
A[-3:]
Out[11]: [3, 4, 5]
对于从前取元素同样适用:
A=[1,2,3,4,5]
A[:3]
Out[12]: [1, 2, 3]
左右索引均置空,相当于取所有元素
A=[1,2,3,4,5]
A[:]
Out[13]: [1, 2, 3, 4, 5]

如果分片时,按步长值取,怎么样?

A=[1,2,3,4,5]
A[0:4:2] 以2为步长值
Out[14]: [1, 3]

A=[1,2,3,4,5]
A[::1] 以1为步长值
Out[15]: [1, 2, 3, 4, 5]

步长值不能为0,但可以为负
A=[1,2,3,4,5]
A[3:1:-1] 为负表示从右到左提取元素
Out[16]: [4, 3]

1.3 序列相加

[1,2]+[3,2]
Out[18]: [1, 2, 3, 2]

"hello"+"world"
Out[19]: 'helloworld'

[1,2]+"hello"
TypeError: can only concatenate list (not "str") to list 出现错误
类型错误:只能连接列表(不是“str”)到列表
因为两种相同类型的列表才能相连,列表和字符串无法相连

1.4 乘法

"hello"*4
Out[21]: 'hellohellohellohello'
一个序列乘以数字n,表示该序列重复n次

1.5 检查元素是否在序列内(用in运算符)

"h" in "hello"
Out[22]: True  字母在字符串内输出TRUE

"w" in "hello"
Out[23]: False 字母不在字符串内输出false

users=["A","B"]
input("enter your name:") in users
enter your name:A
Out[26]: True
该例子是检查某用户名字是否在拥护列表中

#检查用户名和pin码
database=[["A","12"],["B","32"]]
username=input("user name:")
pin=input("pin code:")
if [username,pin] in database:print ('通过')
else:print ("不通过")

user name:A  #在user name 出输入名字
pin code:44  #在pin code处输入pin码
不通过       #显示结果

1.6 长度、最大值和最小值

A=[12,34,32]
len(A)
Out[43]: 3 #序列A有三个元素

A=[12,34,32]
max(A)
Out[44]: 34  #序列A最大值元素
min(A)
Out[45]: 12  #序列A最小值元素

猜你喜欢

转载自blog.csdn.net/Hellolijunshy/article/details/82179350